Autor Zpráva
tomas657
Profil
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
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
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
tomas657: upravil som skript, aby ti to bolo jasnejšie
tomas657
Profil
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
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
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
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
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
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
tomas657: sorry za chybu...
tomas657
Profil
tomas657: sorry za chybu...
Nevadí, stáva sa... ani ja som si ju nevšimol... až neskôr
Toto téma je uzamčeno. Odpověď nelze zaslat.