Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytaniem zliczajacym
Forum PHP.pl > Forum > Bazy danych > MySQL
alex19
Potrzebuje policzyci ile jest rekordow, a pozniej musze miec to samo zapytanie(no nie calkiem winksmiley.jpg ) do wypisania tego.
tabela klient:
id, status, opiekun(id pracownika), sprawdzona i wiele innych
tabela pracownik
id, imie, nazwisko, ... , dzial(id_dzialu)
Stworzylem takie zapytanie:
  1. SELECT count(klient.id) AS ile FROM klient LEFT JOIN klient.opiekun ON klient.opiekun=pracownik.id WHERE pracownik.dzial='1' AND klient.sprawdzona='1' AND klient.STATUS='0'

I dostaje taki blad:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\appserv\www\klienci_main.php on line 38
Ilość firm DWS ()
Table 'klient.opiekun' doesn't exist
" title="Zobacz w manualu php" target="_manual

Co jest grane?questionmark.gif? Przeciez jest taka tabela.
kossa
Na pierwszy rzut oka:

nie '...left join klient.opiekun...' tylko '...left join klient...'

bo to prawda nie masz tabeli 'klient.opiekun'

po drugie to pobierasz dane jeszcze z tabeli pracownik? to wydaje mi się, że Twja składnia po lewft join jest zła, powinno tam być odwołanie do tabeli pracownik, bo do tabeli klient już wcześniej się odwołałeś

http://dev.mysql.com/doc/refman/5.0/en/join.html

Łukasz
alex19
Cytat(kossa @ 16.08.2006, 04:53 ) *
Na pierwszy rzut oka:

nie '...left join klient.opiekun...' tylko '...left join klient...'

klient nie dzialalo, ale zauwazylem w linku ktory mi podeslales ze powinno byc pracownik i teraz dziala smile.gif

Mam jeszcze problem z tym zapytaniem:
  1. SELECT pracownik.id,
  2. pracownik.imie,
  3. pracownik.nazwisko,
  4. dzialy.dzial
  5. FROM pracownik LEFT JOIN dzial ON pracownik.dzial=dzialy.id
  6. WHERE pracownik.dzial='1' OR pracownik.dzial='2' OR pracownik.dzial='3'

Jedyny blad jaki dostaje to:
Kod
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\appserv\www\klienci_przekaz.php on line 67
kossa
Cytat
dzialy.dzial
from pracownik left join dzial on pracownik.dzial=dzialy.id


raz piszesz nazwę tabeli jako dzial a raz jako dzialy


oraz zamiast pisać

Cytat
where pracownik.dzial='1' or pracownik.dzial='2' or pracownik.dzial='3'


uzyj

  1. IN(1,2,3)


Łukasz
alex19
Cytat(kossa @ 17.08.2006, 10:47 ) *
raz piszesz nazwę tabeli jako dzial a raz jako dzialy

Teraz widze. W sumie to popelnilem ten sam blad co w pierwszym zapytaniu.
Cytat
zamiast pisać
uzyj

  1. IN(1,2,3)

O tym nie wiedzialem. Napewno sie przyda smile.gif
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.