| Autor | Zpráva | ||
|---|---|---|---|
| !! MaRtin Profil * |
#1 · Zasláno: 25. 11. 2007, 20:57:33
ahoj,
mam funkci, ktera vytiskne vysledek, jenze ne tam kde potřebuji, vzdycky nahore na strance.. jak tuto funkci opravit, abych si ji mohl vytisknout tam kde potrebuji.. Poradite? puvodni kod.. // http://www.owebu.cz/php/vypis.php?clanek=403 function vypis($kdo,$strom) { if ( count($strom)==($kdo+1) ) { $posledni = count($strom)-1; $dotaz_na_polozku[$kdo] = "SELECT * FROM `kat` WHERE tata=$strom[$posledni]"; } else $dotaz_na_polozku[$kdo] = "SELECT * FROM `kat` WHERE tata=$strom[$kdo]"; $nacti_polozku[$kdo] = mysql_query($dotaz_na_polozku[$kdo]); while ($polozka[$kdo] = MySQL_Fetch_Array($nacti_polozku[$kdo])) { $nazev_p = $polozka[$kdo]["nazev"]; $id_p = $polozka[$kdo]["id"]; $tata_p = $polozka[$kdo]["tata"]; $space = mezera($kdo); if (strlen($nazev_p)>0) print " $space <a href='index.php?ak=$id_p'>$nazev_p </a> <br>"; if ( (count($strom)>=($kdo+1)) and ($strom[$kdo+1]==$id_p)) vypis($kdo+1,$strom); } } vypis(0,$strom); //vypsani zkousel jsem to opravit takto, ale nc se nevypise :( function vypis($kdo,$strom) { if ( count($strom)==($kdo+1) ) { $posledni = count($strom)-1; $dotaz_na_polozku[$kdo] = "SELECT * FROM `kat` WHERE tata=$strom[$posledni]"; } else $dotaz_na_polozku[$kdo] = "SELECT * FROM `kat` WHERE tata=$strom[$kdo]"; $nacti_polozku[$kdo] = mysql_query($dotaz_na_polozku[$kdo]); while ($polozka[$kdo] = MySQL_Fetch_Array($nacti_polozku[$kdo])) { $nazev_p = $polozka[$kdo]["nazev"]; $id_p = $polozka[$kdo]["id"]; $tata_p = $polozka[$kdo]["tata"]; $space = mezera($kdo); if (strlen($nazev_p)>0) $vysledek = " $space <a href='index.php?ak=$id_p'>$nazev_p </a> <br>"; if ( (count($strom)>=($kdo+1)) and ($strom[$kdo+1]==$id_p)) vypis($kdo+1,$strom); } } echo $vysledek; diky |
||
| Joker Profil |
#2 · Zasláno: 25. 11. 2007, 21:40:44
To vypadá spíš na problém HTML/CSS... je někde ta výsledná stránka?
|
||
| !! MaRtin Profil * |
#3 · Zasláno: 25. 11. 2007, 23:16:14
bojuzel neni, mam to na locale, ale problem je v tom, ze ta funkce děla print, a ja potrebuji aby vracela výsledek jako řetězec, ktery si pak muzu vytisknout kdy chci.. a to nevim jak opravit :(
|
||
| BetaCam Profil |
#4 · Zasláno: 26. 11. 2007, 00:26:01
No vytiskne ti to tam kde tu funkci zavoláš. tak jí volej tam kde chceš tisknout.
Nebo zkus neco jako : function vypis($kdo,$strom) { if ( count($strom)==($kdo+1) ) { $posledni = count($strom)-1; $dotaz_na_polozku[$kdo] = "SELECT * FROM `kat` WHERE tata=$strom[$posledni]"; } else $dotaz_na_polozku[$kdo] = "SELECT * FROM `kat` WHERE tata=$strom[$kdo]"; $nacti_polozku[$kdo] = mysql_query($dotaz_na_polozku[$kdo]); while ($polozka[$kdo] = MySQL_Fetch_Array($nacti_polozku[$kdo])) { $nazev_p = $polozka[$kdo]["nazev"]; $id_p = $polozka[$kdo]["id"]; $tata_p = $polozka[$kdo]["tata"]; $space = mezera($kdo); if (strlen($nazev_p)>0) $out .= " $space <a href='index.php?ak=$id_p'>$nazev_p </a> <br>"; if ( (count($strom)>=($kdo+1)) and ($strom[$kdo+1]==$id_p)) vypis($kdo+1,$strom); } return $out; } pak volat neco jako : $strom = vypis(0,$strom); a vypsat echo $strom; jinak nějak sem tu funkci nezkoumal tak doufám, že sem tu úpravu udělal validně a že sem pochopi o co ti vlastně jde :) |
||
| !! MaRtin Profil * |
#5 · Zasláno: 26. 11. 2007, 08:14:08
tak tohle se opravdu vypisuje tam kde potrebuji, jenze prestalo fungovat to, ze kdyz kliknu na nejakou kategorii, tak se nerozbali.. nic se po kliknuti nestane..
dekuji |
||
| nightfish Profil |
#6 · Zasláno: 26. 11. 2007, 08:48:28
function vypis($kdo,$strom) {
echo vypis(0,$strom); (chybělo tam připojení na výstup ve volání sebe sama na konci funkce |
||
| !! MaRtin Profil * |
#7 · Zasláno: 26. 11. 2007, 13:05:03
Ahoj,
jj to je přesně ono ;) moc děkuji za pomoc! Martin |
||
| !! MaRtin Profil * |
#8 · Zasláno: 27. 11. 2007, 11:54:28
BTW: kdybych chtěl vypsat úplně celý strom, tak by ten kod vypdal jak? Poradéte prosím ještě? Děkuji
|
||
|
Časová prodleva: 18 let
|
|||
0