Autor | Zpráva | ||
---|---|---|---|
nightrider Profil |
#1 · Zasláno: 23. 1. 2009, 13:34:59 · Upravil/a: nightrider
Mám kódík na vytahování kategorie a subkategorie. Už jsem to tu řešil v předchozí diskusi,ale už tam byl jenom zmatek, tak jsem se rozhodl založit čestvou se současným problémem a to tím že i když jsem přesvědčenej že je vše jak má, tak se nic nezobrazí:
<?php function getTree($nodeId) { $stack = array(); $level = 0; $res = mysql_query('SELECT id_kategorie, nazev FROM kategorie WHERE id_kategorie='.$nodeId); $row = mysql_fetch_assoc($result) or print("<center><div class=\"error\"><b>Došlo k chybě v dotazu:</b> ".$q. "" .mysql_error())."</div></center>"; $row['LEVEL'] = 0; array_push($stack, $row); while(count($stack)>0) { $r = array_pop($stack); echo str_repeat(" ",$r['LEVEL']).$r['nazev']."<br />"; $res = mysql_query('SELECT id_kategorie, nazev FROM kategorie WHERE parent_id='.$r['id_kategorie']); if(mysql_num_rows($res)>0) { $level = $r['LEVEL']+1; } while($row = mysql_fetch_assoc($result)) { $row['LEVEL'] = $level; array_push($stack, $row); } } } ?> |
||
Kajman_ Profil * |
Je lepší předpočítávat lft a rgt. Další článek je o tom např.
http://php.vrana.cz/traverzovani-kolem-stromu-prakticky.php Pak nemusíte zahlcovat db stroj tolika dotazy. A víte, že tu funkci musíte také zavolat? Zkuste na konec print_r(getTree(0)); |
||
nightrider Profil |
#3 · Zasláno: 23. 1. 2009, 13:56:27
Když to udělám, tak se ozvě chybová hláška:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /3w/zaridi.to/t/testr/config/kategorie.php on line 7 Došlo k chybě v dotazu: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /3w/zaridi.to/t/testr/config/kategorie.php on line 15 Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /3w/zaridi.to/t/testr/config/kategorie.php on line 18 |
||
Kajman_ Profil * |
#4 · Zasláno: 23. 1. 2009, 14:00:08
Máte blbě dotazy. Vypište si jejich stav a chybová hlášení mysql.
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=28&topic=37836 |
||
nightrider Profil |
#5 · Zasláno: 23. 1. 2009, 14:07:47 · Upravil/a: nightrider
Teď to dělám podle stránky kterou jste mi poslal a je vážně dobrá :-) výsledky se mi skutečně zobrazily, ale ne tak jak by jsem chtěl docílit
|
||
Kajman_ Profil * |
#6 · Zasláno: 23. 1. 2009, 14:09:12
A nebo dotazy můžou být dobře a máte jen zmatky mezi $res a $result.
|
||
nightrider Profil |
#7 · Zasláno: 23. 1. 2009, 14:22:17 · Upravil/a: nightrider
Kde je problem? Nechci Test jako sub, ale jako hlavni kategorii.
|
||
Joker Profil |
#8 · Zasláno: 23. 1. 2009, 14:28:22 · Upravil/a: Joker
nightrider
Nechci Test jako sub, ale jako hlavni kategorii. Problém je v tom, že Test není hlavní kategorie. Má rodiče "Kategorie zboží". Pak je potřeba udělat výpis jenom jedné kategorie. edit- blbost, ten dotaz byl špatně. |
||
nightrider Profil |
#9 · Zasláno: 23. 1. 2009, 14:30:24 · Upravil/a: nightrider
Nemůže mi někdo po dvou dnech dát prosím jasnou odpověď? Vážně jsem už stoho dost unavenej
|
||
nightrider Profil |
#10 · Zasláno: 23. 1. 2009, 14:34:39
Jééééééééééééé, lidi jste zlatííííí. Už mi to dfunguje :-) :-) :-) :-) :-) :-) :-)
|
||
nightrider Profil |
#11 · Zasláno: 23. 1. 2009, 14:35:07
Jenom vymenit obrázky zda mi to posvětíte .-)
|
||
Joker Profil |
#12 · Zasláno: 23. 1. 2009, 14:35:40
Přepíšu svůj předchozí příspěvek:
V tomhle případě by bylo potřeba dělat výpis ne všech kategorií, ale jenom uvnitř kategorie "Kategorie zboží". U toho algoritmu traverzování stromem na tohle slouží právě ten levý a pravý index. Kategorie leží uvnitř kategorie XY, pokud její levý index je větší než levý index XY a současně pravý index je menší než index XY Připomínám ale, že na začátku je potřeba zaindexovat strom, tj. přiřadit kategoriím levé a pravé indexy. |
||
nightrider Profil |
#13 · Zasláno: 23. 1. 2009, 14:45:40 · Upravil/a: nightrider
Děkuji všem zůčastněným a hlavně jokerovi
|
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0