Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z WHERE w sql
Forum PHP.pl > Forum > Bazy danych > MySQL
Hubi.pl
Witam,
co może być źle w tym zapytaniu?
  1. <?php
  2.  
  3. $sql_kat=mysql_query("SELECT COUNT(g.kategoria) ile,k.id,k.nazwa,k.block FROM ".PREFIX."galeria_kat k LEFT JOIN ".PREFIX."galeria g ON g.kategoria=k.id GROUP BY k.id WHERE k.block=1");
  4.  
  5. ?>


Może ktoś wie?tongue.gif

Z góry wielkie dzięki smile.gif
fiszol
powiedz jeszcze co zwraca sql
NuLL
Napewno po COUNT brakuje przecinka albo AS.
Hubi.pl
tzn tak..
pozniej wykorzystuje to zapytanie poprzez:
  1. <?php
  2. while ($row_kat=mysql_fetch_array($sql_kat))
  3. {
  4. echo "<tr><td><a href=kategoria.php?id=$row_kat[id]>$row_kat[nazwa]</a> [zdjęć: $row_kat[ile]]<br></td></tr>";
  5. }
  6. ?>

i zwraca:
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/public_html/galeria/index.php on line 41


jeżeli nie będzie WHERE to wszystko jest ok smile.gif tylko z tym wherem jest problem sad.gif
nospor
Cytat
Napewno po COUNT brakuje przecinka albo AS.
No tu sie mylisz. w mysql do aliasow nie potrzeba AS. Wystarczy spacja smile.gif

@Hubi.pl Na jakiej podstawie twierdzisz ze jest cos nie tak z zapytaniem? Ogolnie wyglada dobrze. Napisz cos wiecej, co sie dzieje , jakie errory pluje
NuLL
[ot]@nospor - masz racje - pisanie przez AS to moje przyzwyczajenie smile.gif[/ot]
Hubi.pl
dodam, że linie 39-44 to oczywiście te dwa kody co podałem smile.gif
NuLL
Zrob tak
  1. <?php
  2. mysql_query(tu_sql)or die(mysql_error());
  3. ?>

I powiedz co wypisuje.
nospor
GROUP BY k.id WHERE k.block=1 w mysql to jest nie dozwolone. where musi byc przed group by. po group by moze byc ewentualnie having

ps: przenosze na mysql
Hubi.pl
zwróciło:
Cytat
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tu_sql' at line 1
nospor
Jak juz pisalem:
Cytat
GROUP BY k.id WHERE k.block=1 w mysql to jest nie dozwolone. where musi byc przed group by. po group by moze byc ewentualnie having


http://dev.mysql.com/doc/refman/5.0/en/select.html
Hubi.pl
no dobrze dałem wcześniej i to samo..

  1. <?php
  2. $sql_kat=mysql_query("SELECT COUNT(g.kategoria) ile,k.id,k.nazwa,k.block FROM ".PREFIX."galeria_kat k LEFT JOIN ".PREFIX."galeria g ON g.kategoria=k.id WHERE k.block=1 GROUP BY k.id ");
  3.  
  4. ?>


co jeszcze może być nie tak?
nospor
I dalej jesli usuniesz where to bledu nie ma? No to w takim pole k.block jest np. typu tekstowego i nie mozesz go porownywac do liczby 1. Bo przeniesienie where przed group by powinno bylo pomoc. Zeby sie upewnic az sprawdzilem i oczywiscie where po group by wali errorami, a przed group by jest ok.
Synaps
  1. SELECT COUNT(g.kategoria) ile,k.id,k.nazwa,k.block
  2. FROM galeria_kat k LEFT JOIN galeria g ON g.kategoria=k.id WHERE k.block=1 GROUP BY k.id,k.nazwa,k.block


Powinno działac, przy okazji polecam poczytac dobra lit. dotyczącą SQL'a.
Hubi.pl
niestety nie działa sad.gif
zapytanie bez WHERE jest cały czas OK...

  1. <?php
  2. $sql_kat=mysql_query("SELECT COUNT(g.kategoria) ile,k.id,k.nazwa FROM ".PREFIX."galeria_kat k LEFT JOIN ".PREFIX."galeria g ON g.kategoria=k.id GROUP BY k.id");
  3.  
  4. ?>


Hmm... moze ktoś ma inny pomysł?

error sql:
Cytat
Query was empty
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.