Autor | Zpráva | ||
---|---|---|---|
Peter2 Profil * |
#1 · Zasláno: 26. 1. 2011, 22:25:13
Poprosil by som niekoho o pomoc, mam kod kde taham kategorie a podkategorie, hlavne kategorie som vypol a zobrazuje mi iba podkategorie kde by som chcel zobrazovat aj img ale ten mi necita...img ale existuje!!!
<?php function processCategories2($level, $path, $sel) { $out = array(); $cnt = 0; $q = mysql_query("select id, kategoria from kategorie where parent=$path[$level] AND kategoria<>'' ORDER BY poradie, kategoria ") or die (mysql_error()); while ($row = mysql_fetch_row($q)) { $out[$cnt][0] = $row[0]; $out[$cnt][1] = $row[1]; $out[$cnt][2] = $level; $cnt++; if ($level+1<count($path) && $row[0] == $path[$level+1]) { $sub_out = processCategories2($level+1,$path,$sel); // vypnu sa podkategorie v menu for ($j=0; $j<count($sub_out); $j++) { $out[] = $sub_out[$j]; $cnt++; } } } return $out; } $path = array($zajazdid); $curr = $zajazdid; do { $q = mysql_query("SELECT parent FROM kategorie WHERE id='$curr' AND kategoria<>'' ORDER BY poradie, kategoria ") or die (mysql_error()); $row = mysql_fetch_row($q); $curr = $row ? $row[0] : 0; $path[] = $curr; } while ($curr); //$path = array_reverse($path); //vypnu sa hlavne kategorie $cats = processCategories2(0,$path,$zajazdid); for ($i=0; $i<count($cats); $i++) { $space="<div style=\"margin-top: 0px;\">"; $znazov=$cats[$i][1]; $zid=$cats[$i][0]; $zlevel=$cats[$i][2]; for ($j=0;$j<$zlevel;$j++) $space.=" "; if ($zajazdid==$zid) $class="menu"; else $class="menukat"; echo "<a href='?zajazdid=$zid'>$space $znazov<img src=\"myimages/$zaznam[foto]\" border=\"0\" width=\"150\"></a> </div>\n"; } ?> |
||
Radek Cvek Profil |
#2 · Zasláno: 26. 1. 2011, 22:40:39
Nikde nevidím, co je $zaznam - odkud se ta hodnota načte.
|
||
Peter2 Profil * |
#3 · Zasláno: 26. 1. 2011, 22:48:30
No neviem, daval som tam aj $row[foto] a nic...
|
||
Radek Cvek Profil |
#4 · Zasláno: 26. 1. 2011, 22:51:16 · Upravil/a: Radek Cvek
v SELECTU je pouze id, kategoria a v druhém parent - takže foto se z Db nevybírá a psal bych $row["foto"] a použil mysql_fetch_array
pokud se použije mysql_fetch_row, nemůže se použít $row["foto"] |
||
Peter2 Profil * |
#5 · Zasláno: 27. 1. 2011, 16:50:35
Tak som skusil toto ale nepomaha, ked som dal: $row["foto"] tak hadze chybu:
Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /data/x/d/xd-design.eu/web/CS/kattree2.php on line 74 <?php function processCategories2($level, $path, $sel) { $out = array(); $cnt = 0; $q = mysql_query("select id, kategoria, foto from kategorie where parent=$path[$level] AND kategoria<>'' ORDER BY poradie, kategoria ") or die (mysql_error()); while ($row = mysql_fetch_array($q)) { $out[$cnt][0] = $row[0]; $out[$cnt][1] = $row[1]; $out[$cnt][2] = $level; $cnt++; if ($level+1<count($path) && $row[0] == $path[$level+1]) { $sub_out = processCategories2($level+1,$path,$sel); // vypnu sa podkategorie v menu for ($j=0; $j<count($sub_out); $j++) { $out[] = $sub_out[$j]; $cnt++; } } } return $out; } $path = array($zajazdid); $curr = $zajazdid; do { $q = mysql_query("SELECT parent, foto FROM kategorie WHERE id='$curr' AND kategoria<>'' ORDER BY poradie, kategoria ") or die (mysql_error()); $row = mysql_fetch_array($q); $curr = $row ? $row[0] : 0; //get parent ID $path[] = $curr; } while ($curr); //$path = array_reverse($path); //vypnu sa hlavne kategorie $cats = processCategories2(0,$path,$zajazdid); for ($i=0; $i<count($cats); $i++) { $space="<div style=\"margin-top: 0px;\">"; $znazov=$cats[$i][1]; $zid=$cats[$i][0]; $zlevel=$cats[$i][2]; $srch = MySQL_Query($q); $rows = MySQL_Num_Rows($srch); for ($j=0;$j<$zlevel;$j++) $space.=" "; if ($zajazdid==$zid) $class=""; else $class=""; // echo "<a class=$class href='?tovarid=$zid'>$space $znazov</a> \n"; echo "<a href='?zajazdid=$zid'>$space $znazov<img src=\"myimages/$row[foto]\" border=\"0\" width=\"150\"></a> </div>\n"; } ?> |
||
Radek Cvek Profil |
#6 · Zasláno: 27. 1. 2011, 19:21:54 · Upravil/a: Radek Cvek
Znáš strukturu databáze?
Opravdu je sloupec foto v tabulce kategorie? To je problém toho, že jde špatně poznat, co z databáze vytahuješ - třeba: $out[$cnt][0] = $row[0]; $out[$cnt][1] = $row[1]; Najednou vytahuješ tři věci id, kategoria, foto - ale pracuješ jenom se dvěma řádky $row[0], $row[1] - lepší je to dělat nějak takto: <?php $q = mysql_query("select id, kategoria, foto from kategorie where parent=$path[$level] AND kategoria<>'' ORDER BY poradie, kategoria ") or die (mysql_error()); while ($row = mysql_fetch_assoc($q)) { $id[] = $row["id"]; $kategoria[] = $row["kategoria"]; $foto[] = $row["foto"]; .... pak už víš, co je co a můžeš s tím jednoduše pracovat. |
||
Časová prodleva: 13 let
|
0