Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Drzewko - jak wyswietlic ilosc produktow nalezacych do danej
lucek
post 5.06.2004, 15:36:07
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 5.04.2003

Ostrzeżenie: (0%)
-----


Witam.
Mam funkcje do obslugi drzewka kategorii - jednak nie wiem jak zorbic aleby zliczana i wysietlana byla liczba produktow nalezacych do danej kategorii (oczywiscie baza sklada sie z 2 tabel: DZIALY, PRODUKTY).
Prosze o pomoc
Oto funkcje:

[php:1:29b8958155]<?php

function getBoss($id, $dane, &$index, &$boss, &$validate, &$error)
{
if($dane[$id]['boss']){
if($validate[$id]){
$error=SLW_Blad26;
return;
} else {
$validate[$id]=true;
$boss[$index]['id']=$dane[$id]['boss'];
$boss[$index]['nazwa']=$dane[$dane[$id]['boss']]['nazwa'];
$index++;
getBoss($dane[$id]['boss'], $dane, $index, $boss, $validate, $error);
}
}
}



function getDzialy($idBoss)
{
$sql="select dzId, dzNazwa from dzialy where dzIdBoss='$idBoss' order by dzKolejnosc";
$res=mysql_query($sql);
$index=0;
while($row=mysql_fetch_array($res)){
$dane[$index]['id']=$row["dzId"];
$dane[$index]['nazwa']=str_replace(' ', '&nbsp;', $row["dzNazwa"]);
$index++;
}

return $dane;
}
?>[/php:1:29b8958155]

A w taki sposob wysietlam kategorie:
[php:1:29b8958155]<?php
<?
$cnt=mysql_connect("localhost", "xx", "xx");
mysql_select_db("xx", $cnt)
or die ("Nie można poł&plusmn;czyć się z MySQL'em!");

$dzId=$_GET['id'];
$dzialy=getDzialy($dzId);

for($i=0; $i<count($dzialy); $i++){
?>
<a href="dzial.php?id=<? echo $dzialy[$i]['id']; ?>"><b><? echo $dzialy[$i]['nazwa']; ?></b></a></div>
<?
}
?>
?>[/php:1:29b8958155]
Go to the top of the page
+Quote Post
stoprocent
post 5.06.2004, 23:43:40
Post #2





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 17.05.2003
Skąd: Kraków , Londyn

Ostrzeżenie: (0%)
-----


Przypuszzam ze w tabeli produktry masz dopisane do kazdego produktu id lub nazwe dzialu , wiec wystarczy ze dasz cos takiego:
[php:1:1516a9efaf]<?php
$wyszukaj = mysql_query("SELECT * FROM produkty WHERE id_dzialu='".$id_dz."' ");
$wynikow = mysql_num_rows($wyszukaj);
echo $wynikow ;
?>[/php:1:1516a9efaf]


--------------------
Go to the top of the page
+Quote Post
lucek
post 6.06.2004, 13:23:20
Post #3





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 5.04.2003

Ostrzeżenie: (0%)
-----


Chodzilo mi o troche cos innego - nie zliczanie tylko produktow w danej kategorii - tylko : aby zliczyc wszytkie produkty takze w kategoriach nizszych questionmark.gif
A nie wiem jak wlasnie to zrobic.
Go to the top of the page
+Quote Post
stoprocent
post 6.06.2004, 22:04:41
Post #4





Grupa: Zarejestrowani
Postów: 338
Pomógł: 2
Dołączył: 17.05.2003
Skąd: Kraków , Londyn

Ostrzeżenie: (0%)
-----


To nie mozesz stworzyc podgrup , i do produktu dopisac grupe i podgrupe i wtedy tylko dopiszesz AND podgrupa='id'
[php:1:29c0471fdf]<?php
$wyszukaj = mysql_query("SELECT * FROM produkty WHERE id_dzialu='".$id_dz."' AND id_podgrupy='".$id_pod."' ");
$wynikow = mysql_num_rows($wyszukaj);
echo $wynikow ;
?>[/php:1:29c0471fdf]

chyba ze chodzi o zliczenie wszystkich produktow w bazie to sprawa jest jeszcze prostsza :
[php:1:29c0471fdf]<?php
$wyszukaj = mysql_query("SELECT * FROM produkty ");
$wynikow = mysql_num_rows($wyszukaj);
echo $wynikow ;

?>[/php:1:29c0471fdf]


--------------------
Go to the top of the page
+Quote Post
cboot
post 7.06.2004, 22:36:52
Post #5





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

Ostrzeżenie: (0%)
-----


Cytat
Chodzilo mi o troche cos innego - nie zliczanie tylko produktow w danej kategorii - tylko : aby zliczyc wszytkie produkty takze w kategoriach nizszych questionmark.gif
A nie wiem jak wlasnie to zrobic.

A jak masz zrobione to drzewko. Które to są kategorie niższe - gdzie jest przechowywana ta informacja? Musimy skądś wiedzieć, które podkategorie należą do danej kategorii. Jak to podasz to zrobi się odpowiednie zapytanie.

@nasto
Unikamy liczenia wierszy w php - czyli funkcją mysql_num_rows, a liczymy je już w zapytaniu do bazy danych, czyli countem. W ten sposób php dostaje w wyniku jedną liczbę, a nie całą zawartość tabeli.


--------------------
Na warsztacie (z zamiłowania): Nowy rynek kosztowności, broni, ziół i misktur na Vallheru (MMORPG) lllllllllllll 65%
[b]Na warsztacie (komercyjnie):
Rozbudowa i adaptacja do wymagań klienta gotowego Progra
Go to the top of the page
+Quote Post
lucek
post 10.06.2004, 16:58:02
Post #6





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 5.04.2003

Ostrzeżenie: (0%)
-----


Witam.
Zapomnialem jeszcze napisac struktury bazy:

[sql:1:6cb6ac4e8d]
- dzId - id kategorii
- dzIdBoss - id kategorii rodzica]
- dzNazwa - nazwa kategorii
[/sql:1:6cb6ac4e8d]

I jeszcze nie moge sobei poradzic z wysietleniem drzewka w polu typu select:
w taki sposob:
Kod
- Kategoria 1

  - Podkategoria 1

    - Podkategoria 1.1

-Kategoria 2

  - Podkategoria 1

  - Podkategoria 2

itp

Ponizej zamieszczam kod jakim wyswietlam cale drzewko.
Lecz nie moge sobie poradzic z SELECTEM.

[php:1:6cb6ac4e8d]<?php
for($i=0; $i<count($struktura); $i++)
{
$nr=$i+1;
for($j=0; $j<count($struktura[$i]); $j++)
{
$margines=10*$struktura[$i][$j]['level'];
echo "<table width="100%" ><tr><td width= "".$margines.""></td>
<td><li style="margin-left: 10px;">
<ahref="index.php?id=".$struktura[$i][$j]['id']."&a=ed">".$struktura[$i][$j]['nazwa']."</a>";

if($struktura[$i][$j+1]['level'] > $struktura[$i][$j]['level'])
{
print'</td>';
}
else
{
print'</td>';
}
if($struktura[$i][$j+1]['level'] < $struktura[$i][$j]['level'])
for($k=0; $k<$struktura[$i][$j]['level']-$struktura[$i][$j+1]['level']; $k++)echo "</td></tr></table>";
}
}
?>[/php:1:6cb6ac4e8d]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 18:28