Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]PHP MySQL - ilość kategorii, skrypt źle zlicza kategorie
Slashmd
post 2.02.2011, 23:14:57
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 2.02.2011

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


Witam wszystkich,
mam ogromny problem którego nie mogę rozwiązać. Skrypt źle zlicza kategorie. Baza skonstruowana jest tak że:
1. jest kategoria np. Samochody (W bazie danych nr. 1)
2. jest podkategoria np. BMW (W bazie nr. 1)
3. jest ogłoszenie które posiada kolumnę a w niej kategorię i podkategorie w formie (1_1, 1_2) Gdzie pierwszy numerek to kat. a drugi podkat.

Schodki zaczynają się gdy mam przykładowo 1,11,12,13. Skrypt powinien zliczać ogłoszenia w danej kategorii, tak jednak nie jest bierze sobie kategorię 1,10,11,12,13,14 itd. wszystko przydładowo z 1 z przodu i zlicza do 1. Tak samo jest analogicznie z 2 zlicza niepotrzebnie 2,20,21,22,23, gdzie to wszystko powinno być osobno.

Proszę o podpowiedź co może być źle w kodzie. Nie jestem doświadczony i męczę się z tym już dobre 3 miesiące.





  1. <?php defined( 'dostep' ) or die( '' ); ?>
  2. <?php
  3. include ("tempp.php");
  4. $zapytanie=mysql_query("SELECT * FROM pmz_kategories order by kat_nr asc");
  5. $i=1;
  6. while ($row = mysql_fetch_assoc($zapytanie))
  7. {
  8. $ilosc_kat=mysql_query("SELECT ogl_kategoria FROM pmz_ogloszenia where ogl_kategoria LIKE '".$row['kat_id']."_%' AND ogl_aktywne LIKE '1'");
  9. $ile_rek = mysql_num_rows($ilosc_kat);
  10. $id_kat[]=$row['kat_id'];
  11. $nazwa_kat[]=$row['kat_nazwa'];
  12. $ile_ogl[]=$ile_rek;
  13. $podkategorie=mysql_query("SELECT * FROM pmz_podkategories WHERE kat_id LIKE '".$row['kat_id']."'order by podkat_nr asc ");
  14. $k=1;
  15. while ($row2 = mysql_fetch_array($podkategorie)) {
  16. $id_podkat[]=$row2['podkat_id'];
  17. $nazwa_podkat[]=$row2['podkat_nazwa'];
  18. $id_id_kat[]=$row2['kat_id'];
  19. $ilosc_podkat=mysql_query("SELECT ogl_kategoria FROM pmz_ogloszenia where ogl_kategoria LIKE '".$row['kat_id']."_".$row2['podkat_id']."' AND ogl_aktywne LIKE '1'");
  20. $ile_rek_pod = mysql_num_rows($ilosc_podkat);
  21. $ile_podogl[]=$ile_rek_pod;
  22. $k++;
  23. }
  24. $i++;
  25. }
  26. $str2=explode('_',$_GET['show']);
  27. $str=$str2[0];
  28. /*--------------------smarty----------------------------------------------*/
  29. $smarty = new Smarty;
  30. $smarty->assign('kategorie',$id_kat);
  31. $smarty->assign('nazwa_kat',$nazwa_kat);
  32. $smarty->assign('ile_ogl_kat',$ile_ogl);
  33. $smarty->assign('id_podkat',$id_podkat);
  34. $smarty->assign('nazwa_podkat',$nazwa_podkat);
  35. $smarty->assign('ile_podogl',$ile_podogl);
  36. $smarty->assign('id_id_kat',$id_id_kat);
  37. $smarty->assign('str',$str);
  38. $smarty->display(''.$grf.'/kategorie.tpl');
  39. /*------------------------koniec------------------------------------------*/
  40. ?>
Go to the top of the page
+Quote Post
sadistic_son
post 3.02.2011, 01:20:58
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Masz źle skonstruowaną bazę. Poczytaj o relacjach. Zdecydowanie unika się czegoś takiego jak X_Y gdzie X oznacza id z jednej tabeli a Y z drugiej. Do tego właśnie służą relacje jeden-do-wielu i wiele-do-wielu.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 12:25