Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Liczba pozycji
Forum PHP.pl > Forum > PHP
pemko11
Witam. Mam taki problem chciałbym zrobić liczbę ogłoszeń po nazwie kategorii

  1. <?php
  2.  
  3. $zapytanie=sql_select("
  4. SELECT * FROM _o_kategorie ORDER BY kat_nazwa asc
  5. ");
  6.  
  7.  
  8. $podkategorie=sql_select("
  9. SELECT * FROM _o_podkategorie
  10. WHERE kat_id LIKE '".$zapytanie[$i][0]."'
  11. ORDER BY podkat_nazwa asc
  12. ");
  13.  
  14.  
  15.  
  16. $strona_wys=9.85*($zapytanie[0][0]+$podkategorie[0][0])+75+140+10+173-3;
  17.  
  18. if ($zapytanie[0][0] > 0){
  19. for ($i=1;$i<=$zapytanie[0][0];$i++){
  20. /* echo'<div id="menu"><a href="'.tytul_ogl($zapytanie[$i][1]).','.$zapytanie[$i][0].',0.html"><b>'.$zapytanie[$i][1].'</b><span style="margin-left:5px; top:5px;
  21. left:15px; font-weight:bold"></span></a></div> */
  22.  
  23. echo'<div id="menu"><a href="java script:void(0);"><b><span id="main_cat" style="margin-top: 5px; font-weight:normal">'.$zapytanie[$i][1].'</span></b><span style="margin-left:5px; font-weight:normal"></span></a></div>
  24. <ul id="navigation" style="display:none">';
  25.  
  26.  
  27. $podkategorie=sql_select("
  28. SELECT * FROM _o_podkategorie
  29. WHERE kat_id LIKE '".$zapytanie[$i][0]."'
  30. ORDER BY podkat_nazwa asc
  31. ");
  32.  
  33. for ($j=1;$j<=$podkategorie[0][0];$j++){
  34. $str=''.$zapytanie[$i][1].'_'.$podkategorie[$j][2].'';
  35. echo'<li id="menu" style="clear:both;"><a class="" href="'.tytul_ogl($str).','.$zapytanie[$i][0].','.$podkategorie[$j][0].'.html">'.$podkategorie[$j][2].'</a></li>';
  36. }
  37. echo'</ul>';
  38. }
  39. }
  40. ?>


lecz nie jestem w stanie tego zrobić. W bazie danych kategorie ogłoszeń wyglądają tak: (ogl_kategoria)


i nie jestem w stanie wogóle do tego dojść..

thek
Źle zaprojektowana baza i tyle. tak nie powinno się przechowywać kategorii. Jeśli masz zamiar coś z tego zrobić to zrób tabelę złączeniową, gdzie będziesz przechowywał pary id_ogl, id_kategorii jako klucz typu unique.
pemko11
Czyli mogę sobie pomarzyć, no trudno..
thek
Wszystko się da, tylko trzeba się zastanowić jak to ugryźć i czy jest sens smile.gif Przeanalizuj przypadki:
Przypadek1: numer (nie wiem czy można tylko 1 kategorie wybrać)
Przypadek2: numer1_numer2 (to chyba 2 kategorie?)
Przypadek3: numer1_numer2_numer3 (to chyba byłyby 3 kategorie?)
Przypadek4: i tak dalej...
Jakie mamy wzorce wyszukiwania numeru kategorii?
Dla 1: numer
Dla 2: numer1_ lub _numer2
Dla 3: numer1_ lub _numer2_ albo _numer3
Dla 4: to samo co dla 3.

Ostatecznie otrzymujemy:
^numer$
^numer_
_numer_
_numer$
gdzie ^ to początek a $ to koniec ciągu w bazie zas numer to liczba przynajmniej 1 cyfrowa (nie mogą tutaj się zaleźć żadne inne znaki niż cyfry). Pozostaje nam tylko wyrażenie regularne wykonać w tabeli. Nie jest to więc wydajne, ale niestety jak mus to mus. Lepiej byłoby to znormalizować do formy jaką podałem wyżej. Mniej kombinowania i wkurzania się w przyszłości.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.