Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Potrzebna pomoc przy zapytaniu sql
Forum PHP.pl > Forum > Przedszkole
1witek2
Witam koledzy

Potrzebuję pomocy przy stworzeniu zapytania do bazy bo już mi ręce opadają

Mianowice mam skrypt z ogłoszeniami wszystko działa okey ale chcę jeszcze dodać takie coś - mianowicie ilość ogłoszeń w danej kategorii i podkategorii

kategoria 1 [ 6 ogłoszeń ]
-podkategoria 1 [ 2 ogłoszenia ]
-podkategoria 2 [ 12 ogłoszenia ]
kategoria 2 [ 16 ogłoszeń ]
kategoria 3 [ 1 ogłoszeń ]
kategoria 4 [ 4 ogłoszeń ]
itd.

takie zapytanie zlicza mi wszystkie ogłoszenia dodane do bazy

  1. $ilosc_ogloszen=sql_select("
  2. SELECT ogl_aktywne FROM _o_ogloszenia
  3. WHERE ogl_aktywne LIKE '1'
  4. ");
  5.  
  6. $ilosc_kategorii=sql_select("
  7. SELECT kat_id FROM _o_kategorie
  8. ");
  9.  
  10. $ilosc_podkategorii=sql_select("
  11. SELECT podkat_id FROM _o_podkategorie
  12. ");


  1. echo'Wszystkich ogłoszeń w bazie: '.$ilosc_ogloszen[0][0].'';


Proszę o rady i pomoc

KR2615
  1. SELECT COUNT(*) FROM _o_ogloszenia WHERE ogl_aktywne LIKE '1' GROUP BY id_kategorii
1witek2
coś chyba robię nie tak - wklejam to jak doradził KR2615

  1. $ilosc_kat=sql_select("SELECT COUNT(*) FROM _o_ogloszenia WHERE ogl_aktywne LIKE '1' GROUP BY id_kategorii");


wywołuję tym

  1. [ '.$ilosc_kat.' ]


ale lipa - próbowałem zmieniać GROUP BY id_kategorii na GROUP BY kat_id ale nadal wyskakuję błąd w zapytaniu! [ Array ]
kpt_lucek
Cytat(1witek2 @ 22.06.2014, 12:03:17 ) *
coś chyba robię nie tak - wklejam to jak doradził KR2615

  1. $ilosc_kat=sql_select("SELECT COUNT(*) FROM _o_ogloszenia WHERE ogl_aktywne LIKE '1' GROUP BY id_kategorii");


wywołuję tym

  1. [ '.$ilosc_kat.' ]


ale lipa - próbowałem zmieniać GROUP BY id_kategorii na GROUP BY kat_id ale nadal wyskakuję błąd w zapytaniu! [ Array ]


Oczywiście że zwróci błąd...
  1. $ilosc_kat=sql_select(...);

Zakładam że sql_select() jest jakąś funkcją obiektu obsługującego Twoją bazę danych. Wywołując to w ten sposób
  1. [ '.$ilosc_kat.' ]

wstawiasz w klucz tablicy inną tablicę.

Wykonaj:
  1. print_r($ilosc_kat)

I zobacz wynik.



Pozdrawiam
1witek2
kpt_lucek dzięki za wskazówkę ale jednak nie zadziałało zwróciło błąd

Array ( [0] => Array ( [0] => ) ) kategoria [ 1 ]

i tak jest przy każdej z 19 kategorii

wywołałem tym
  1. [ '.print_r($ilosc_kat).' ]


zapytanie mam takie
  1. $ilosc_kat=sql_select("SELECT COUNT(*) FROM _o_ogloszenia WHERE ogl_aktywne LIKE '1' GROUP BY kat_id");


nospor
1) To nie zaden blad, a informacja o zwroconym rekordzie
2) ogl_aktywne LIKE '1'
Ke?
chyba powinno byc:
ogl_aktywne =1
3) I jesli to nie zadzialalo, to pokaz caly kod jaki ty tam teraz masz
1witek2
jednak zmiana nic nie zmieniła nadal to samo, poniżej cały kod z pliku

  1. <?php
  2.  
  3. $zapytanie=sql_select("SELECT * FROM _o_kategorie ORDER BY kat_nazwa asc");
  4.  
  5. $podkategorie=sql_select("SELECT * FROM _o_podkategorie");
  6.  
  7. $ilosc_kat=sql_select("SELECT COUNT(*) FROM _o_ogloszenia WHERE ogl_aktywne=1 GROUP BY kat_id");
  8.  
  9. $strona_wys=9.85*($zapytanie[0][0]+$podkategorie[0][0])+75+140+10+173-3;
  10.  
  11. if ($zapytanie[0][0] > 0){
  12.  
  13. for ($i=1;$i<=$zapytanie[0][0];$i++){
  14.  
  15. echo'&nbsp;&nbsp;&nbsp;<img src="images/category.png" class="st" />&nbsp;<a class="st2" href="'.tytul_ogl($zapytanie[$i][1]).','.$zapytanie[$i][0].',0.html"><strong>'.$zapytanie[$i][1].'</strong>[ '.print_r($ilosc_kat).' ]</a><br />';
  16.  
  17. $podkategorie=sql_select("SELECT * FROM _o_podkategorie WHERE kat_id LIKE '".$zapytanie[$i][0]."' ORDER BY podkat_nazwa asc");
  18.  
  19. for ($j=1;$j<=$podkategorie[0][0];$j++){
  20.  
  21. $str=''.$zapytanie[$i][1].'_'.$podkategorie[$j][2].'';
  22. echo'&nbsp;&nbsp;&nbsp;<a href="'.tytul_ogl($str).','.$zapytanie[$i][0].','.$podkategorie[$j][0].'.html">'.$podkategorie[$j][2].'</a><br />';
  23.  
  24. }
  25. }
  26. }
  27. ?>


dzięki za chęć pomocy
nospor
No niestety tak to bywa, jak sie bezmyslnie wkleja kod, podany przez innego uzytkownika. Mowa tu o zapytaniu
$ilosc_kat=sql_select("SELECT COUNT(*) FROM _o_ogloszenia WHERE ogl_aktywne=1 GROUP BY kat_id");
ktore ma sie nijak do calosci...

No nic, późna juz pora, czas się klaść spać.
1witek2
no to rozumiem że jest to błąd zapytania do bazy, no to niestety muszę jeszcze trochę i to dużo poczytać aby wyłapać bład bo niestety z sql jestm noga

dzięki za odpowiedzi


nospor lub ktokolwiek - bardzo proszę o pomoc w tym temacie bo męczy mnie to już od dawna a wydaje mi się że wiecie jak napisać do tego zapytanie a zajmie to wam pewnie 10 sek.

Pozdrawiam
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.