Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Niewytłumaczone zjawisko z ZAPYTANIEM ?
luckyluc
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.04.2006

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


Wykonałem mały system produktów. Dodaje produkt do tabeli "PRODUKTY", a następnie kiedy znam nr ID produktu dodaje zdjęcia do tabeli "ZDJECIA" podając znany juz nr ID produktu.


produkty

produkty_id | produkty_nazwa | produkty_opis | produkty_status | produkty_pozycja

1 | gruszka | zielona | 1 | 0
2 | banan | zolty | 1 | 0

zdjecia

zdjecia_id | zdjecia_plik | zdjecia_produkt

1 | sd323.jpg | 1
2 | fd334.jpg | 1
3 | gh42.jpg | 1
4 | ss11.jpg | 1
5 | df89.jpg | 2


Poniższe zapytanie miało wyświetlić produkt i pierwsze dodane zdjęcie z tabeli "zdjecia":

  1. $zapytanie = mysql_query("SELECT * FROM produkty LEFT JOIN zdjecia ON (zdjecia_produkt=produkty_id) WHERE produkty_status = \"1\" GROUP BY produkty_id ORDER BY produkty_pozycja DESC, produkty_nazwa ASC");


Na początku wszystko było OK. Wyświetlały się produkty i przy nich pierwsze dodane zdjęcia, ale gdy w bazie było już ponad 500 produktów przy niektórych produktach zaczęły pojawiać się inne niż pierwsze fotki. Porównywałem poszczególne rekordy i niczym się nie różnią! Nie mogę znaleźć reguły występowania tego błędu.

Co może być źle? Proszę o podpowiedź.

Ten post edytował luckyluc 8.02.2008, 13:37:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
luckyluc
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 11.04.2006

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


Nie ma to żadnego znaczenia! Sprawdzałem to wielokrotnie decydując się na posta na forum. Problem jest bardziej złożony. Jeżeli Twoim zdaniem ma to znaczenie to wytłumacz dlaczego 90% produktów dobrze wyświetla pierwsze zdjęcie, a 10% źle?

Ps. Na potwierdzenie przy takim zapytaniu dzieje się tak samo, a tu kryteria nie mają nic do rzeczy, bo rekord jest jeden:


  1. $zapytanie = mysql_query("SELECT * FROM produkty LEFT JOIN zdjecia ON (zdjecia_produkt=produkty_id) WHERE produkty_status = \"1\" AND produkty_id = \"$id\" GROUP BY produkty_id");


Ten post edytował luckyluc 8.02.2008, 20:08:14
Go to the top of the page
+Quote Post
wicy
post
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 2.02.2008

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


Cytat(luckyluc @ 8.02.2008, 19:57:32 ) *
Nie ma to żadnego znaczenia! Sprawdzałem to wielokrotnie decydując się na posta na forum. Problem jest bardziej złożony. Jeżeli Twoim zdaniem ma to znaczenie to wytłumacz dlaczego 90% produktów dobrze wyświetla pierwsze zdjęcie, a 10% źle?

Ps. Na potwierdzenie przy takim zapytaniu dzieje się tak samo, a tu kryteria nie mają nic do rzeczy, bo rekord jest jeden:


  1. $zapytanie = mysql_query("SELECT * FROM produkty LEFT JOIN zdjecia ON (zdjecia_produkt=produkty_id) WHERE produkty_status = \"1\" AND produkty_id = \"$id\" GROUP BY produkty_id");


W zapytaniu nie ma zadnego wskazania, które zdjęcie ma znaleźć się w wyniku zapytania.
Może lepiej działalo by coś takiego?

  1. $zapytanie = mysql_query("SELECT * FROM produkty, zdjecia LEFT JOIN zdjecia ON (zdjecia_produkt=produkty_id) WHERE produkty_status = \"1\" AND produkty_id = \"$id\" AND zdjecia_id = \"1\" GROUP BY produkty_id");


Z tym, że zdjęcia winny być numerowane w ramach grupy produktów zawsze od 1.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.10.2025 - 17:22