Autor | Zpráva | ||
---|---|---|---|
tomas657 Profil |
#1 · Zasláno: 19. 7. 2009, 15:49:33 · Upravil/a: tomas657
Zdravím, mám takýto problém... mám katalog a potrebujem v nom na hlavnú stránku vypísať kategorie a k nim 2-3 podkategorie... vypisovať ich ručne je pracné, navyše kategorie a podkategorie budú časom pribúdať a to si vyžiada znova ručnú editáciu...
kategorie a podkategorie mám uložené v databáze v tvare "kategoria---podkategoria", napr. Šport---Futbal Šport---Hokej Šport---Tenis Zvieratá---Psy Zvieratá---Mačky Zvieratá---Papagáje Ak ich skúsim vypísať len jednoducho so zoradením podľa abecedy, tak to nepomôže, lebo názov kategorie sa vypíše 3x. Nedalo by sa nejak obmedziť aby sa pri každej kategorii reťazec pred "---" vypísal len raz? Aby sa to vypísalo v takomto tvare: Šport Futbal, Hokej, Tenis Možno som zvolil trochu komplikované uloženie názvov v databáze, ale už je neskoro to zmeniť, katalog je už takmer hotový... Ďakujem za Vaše rady. |
||
tiso Profil |
#2 · Zasláno: 19. 7. 2009, 16:41:37 · Upravil/a: tiso
tomas657: správne riešenie je zmeniť návrh databázy, prečítaj si niečo o normalizácii.
Vyriešiť sa to dá takto: $cat=''; while($row=mysql_fetch_assoc($result)){ $tree=explode('---', $row['category']); if($cat != $row[0]){ //mame novu kategoriu, vypis ju echo 'kategória: '.$tree[0]; ... $cat=$tree[0]; } //vypis podkategoriu echo 'podkategória: '.$tree[1]; ... } edit: hádam je to teraz jasnejšie |
||
tomas657 Profil |
#3 · Zasláno: 19. 7. 2009, 16:56:06
toto nepomohlo stále sa to vypíše takto (príklad):
Audio, video Hudební portály Audio, video Stahování MP3 Audio, video Videoportály |
||
tiso Profil |
#4 · Zasláno: 19. 7. 2009, 17:11:46
tomas657: upravil som skript, aby ti to bolo jasnejšie
|
||
tomas657 Profil |
#5 · Zasláno: 19. 7. 2009, 17:16:46
„tomas657: upravil som skript, aby ti to bolo jasnejšie“
no ved presne takto som ti to vypísal aj ja.... ale možno mám zlý mysql_query... napíš mi prosím aj to... ja to mám: select * from zaradenie_odkazov |
||
tiso Profil |
#6 · Zasláno: 19. 7. 2009, 17:34:22
tomas657: „napíš mi prosím aj to“
to nemôžem, veštica ktorá by mi poradila aké máš názvy stĺpcov v tej tabuľke v nedeľu nepracuje. |
||
tomas657 Profil |
#7 · Zasláno: 19. 7. 2009, 17:36:23
„to nemôžem, veštica ktorá by mi poradila aké máš názvy stĺpcov v tej tabuľke v nedeľu nepracuje.“
stlpce sú id, zaradenie, zaradenie_url, pocet_zobrazeni :-) teraz ide hlavne o to zaradenie... zaradenie_url je síce potrebné tiež na vytvorenie url adries podkategorii, ale o to tu teraz nejde... |
||
tiso Profil |
#8 · Zasláno: 19. 7. 2009, 18:09:05
tomas657: v tom mojom príklade si zmeň $row['category'] na $row['zaradenie'] a v tom svojom dotaze si pre správnu funkčnosť doplň ORDER BY zaradenie
|
||
tomas657 Profil |
#9 · Zasláno: 19. 7. 2009, 18:15:28
„tomas657: v tom mojom príklade si zmeň $row['category'] na $row['zaradenie'] a v tom svojom dotaze si pre správnu funkčnosť doplň ORDER BY zaradenie“
neboj, to som sa dovtípil zmeniť už predtým... (myslím to category na zaradenie...) a order som tiež už dal... celkový kód je: pripojenie(); $result=mysql_query("SELECT * FROM zaradenie_odkazov ORDER BY zaradenie"); $cat=''; while($row = mysql_fetch_assoc($result)){ $tree=explode('---', $row['zaradenie']); if($cat != $row[0]){ //mame novu kategoriu, vypis ju echo $tree[0]; $cat=$tree[0]; } //vypis podkategoriu echo $tree[1]; } a výsledok môžeš vidieť na katalog.newsportal.cz/ |
||
tomas657 Profil |
#10 · Zasláno: 19. 7. 2009, 18:38:02
ok, dakujem za rady, už som na to nejak prišiel...
if($cat != $row[0]){ som vymenil za if($cat != $tree[0]){ a ide to ako tak... |
||
tiso Profil |
#11 · Zasláno: 19. 7. 2009, 19:18:16
tomas657: sorry za chybu...
|
||
tomas657 Profil |
#12 · Zasláno: 19. 7. 2009, 19:25:01
„tomas657: sorry za chybu...“
Nevadí, stáva sa... ani ja som si ju nevšimol... až neskôr |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0