Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Niepoprawny wynik zwracany przez MySQl
Czadus
post 11.09.2008, 20:54:31
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

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


Mam oto takie zapytanie:

Kod
"SELECT `id`,`tytul`,`data`,`status`, (SELECT COUNT(*) FROM `admin_galeria_zdjecia` WHERE `id_galeria`='admin_galeria_dzialy.id') AS suma FROM `admin_galeria_dzialy` ORDER BY `data`, `tytul`;"


Niestety zwraca mi ciągle zero. Pola są poprawne, składniowo rownież. Przyczynę tego problemu już znalazłem. Chodzi o o warunek:
Kod
........'admin_galeria_dzialy.id'........


Gdy napiszę go bez apostrofów, to wszystko działa poprawnie, no ale przyjęło się, aby te elementy jednak były objętę nimi. Jak zatem połączyć potrzebę wykorzystania apostrofów bez burzenia prawidłowego działania zapytania??

Ten post edytował Czadus 11.09.2008, 21:05:10
Go to the top of the page
+Quote Post
nevt
post 11.09.2008, 22:03:04
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


jeżeli admin_galeria_dzialy.id jest nazwą pola id w tabeli admin_galeria_dzialy to musisz użyć znaku akcentu ` a nie apostrofu ':
`admin_galeria_dzialy`.`id`


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
Czadus
post 13.09.2008, 11:21:46
Post #3





Grupa: Zarejestrowani
Postów: 164
Pomógł: 4
Dołączył: 29.08.2008

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


wielkie dzięki. oto mi właśnie chodziło. Korzystając z okazji, nie będę zakładał nowego tematu, a napiszę to tutaj. Moje zapytanie nie zwraca mi nic, a powinno.

Kod
SELECT `id`,`id_galeria`,`grafika`,`data`,`status` FROM `admin_galeria_zdjecia` WHERE `data`=(SELECT MIN(`data`) FROM `admin_galeria_dzialy` WHERE `status`='1');


Chcę wyświetlać losowe zdjęcie z najnowszej galerii. Zatem chcę pobrać sobie informacje o tej, która ma najmłodszą datę. samo podzapytanie działa poprawnie, jedna reasumując całość, zapytanie nie zwraca mi nic. Czy napisałem coś nie tak??

Dodam, że MIN(`data`) dotyczy pola daty z tabeli `admin_galeria_dzialy`, podobnie `status`. Pozostałe pola w podstawowym zapytaniu odnoszą się do tabeli `admin_galeria_zdjecia`.

-----------------------------------------------------------
PROBLEM rozwiązany. Zapytanie było poprawnie napisane składniowo, jednak okazało się, że szukałem w tabeli ze zdjęciami rekordów o takiej samej dacie, jak utworzony dział dla tej galerii. No oczywiście tak być nie mogło, bo każdy rekord ma inną datę. Poprawne zapytanie wygląda następująco:

Kod
SELECT `id`,`id_galeria`,`grafika`,`data`,`status` FROM `admin_galeria_zdjecia` WHERE `id_galeria`=(SELECT `id` FROM `admin_galeria_dzialy` WHERE `status`='1' AND `data`=(SELECT MAX(`data`) FROM `admin_galeria_dzialy` WHERE `status`='1'));


Ten post edytował Czadus 13.09.2008, 11:21:59
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: 12.06.2025 - 23:39