Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Liczba pozycji
pemko11
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 5.10.2010

Ostrzeżenie: (0%)
-----


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)

(IMG:http://iv.pl/images/26816306130106405389.png)
i nie jestem w stanie wogóle do tego dojść..

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ź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.
Go to the top of the page
+Quote Post
pemko11
post
Post #3





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 5.10.2010

Ostrzeżenie: (0%)
-----


Czyli mogę sobie pomarzyć, no trudno..
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Wszystko się da, tylko trzeba się zastanowić jak to ugryźć i czy jest sens (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 07:39