Autor Zpráva
Ivorius
Profil
mám funkci která mi za pomocí rekurze vypisuje kategorie a všechny subkategorie. ta funkce je

function strom2($nadkat)
{
$result = mysql_query("SELECT id, category, pozice, url FROM category WHERE nadkat = " . $nadkat . " ORDER BY pozice");
while ($row = mysql_fetch_assoc($result)) {
$menu[$i]["category"]=$row['category'];
$menu[$i]["url"]=$row['url'];
$menu[$i]["pozice"]=$row['pozice'];
$i++;
strom2($row['id']); //rekurze - projed sql s novou nadkategorií
}
return $menu;
}

když to ovšem chci někde použít a dám print_r(strom2('0')); tak mi to vypíše pouze kategorie hlavní, ale už ne subkategori - ty co by měla vyhodit ta rekurze.

když ovšem namísto return použiji print_r přímo v té funkci, tak to vypíše všechno. nevíte v čem by mohl být problém?
tiso
Profil
Ivorius vieme:
menu[$i]["nieco"]=strom2($row['id']);

Prípadne si to pole poskladaj inak...
Kajman_
Profil *
$menu[$i]['podkategorie']=strom2($row['id']);
Ivorius
Profil
Kluci moc díky, jste frajeři. Já nad tím včera strávil celý den, no hold když se do něčeho takového pustí lama tak to stojí za to :)

Pokud byste mě ještě navedli jak s těmi daty pracovat, bylo by to super. Dřív jsem používal

$kategorie=strom2('0');
$bodyadmin .= "<p>Celkový počet kategorií:" . count($kategorie) . "</p>";

for ($i = 0; $i < count($kategorie); ++$i){
if ($i==0){
$bodyadmin .= "<table>";
$bodyadmin .= "<tr><th class="dlouhe">Název</th><th>Pozice</th><th>Smazat</th></tr>";
}
$bodyadmin .= "<tr><td>";
$bodyadmin .= "- <a href='admin.php?go=kategorie-edit&id=".$kategorie[$i]["id"]."'>".$kate gorie[$i]["category"]."</a></td>";
$bodyadmin .= "<td>".$kategorie[$i]["pozice"]."</td>";
$bodyadmin .= "<td><a href='admin.php?go=kategorie-del&id=".$kategorie[$i]["id"]."'> Smazat</a></td>";
$bodyadmin .= "</tr>";
}

To bohužel teď nefunguje, neboť předpokládám že to pracuje pouze s těmi hlavními kategoriemi. Jak byste udělali výpisy které budou mít i správně přiřazené subkategorie?
Děkuji
tiso
Profil
Ivorius - pokiaľ to pole iba vypisuješ a nič iné s ním nerobíš, tak tá funkcia by ho mohla rovno vypisovať. Principiálne takto:
{

$out='...';
$out.='...';
$out.=strom2($row['id']);
}
return $out;
Ivorius
Profil
tiso - to právě nechci, protože to používám jak na výpis kategorií (co je vidět nahoře) tak i ve výpisu option atd. Jsou někde o této problematice informace? Zkoušel jsem googlit, bohužel asi neumím správně položit dotaz.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0