![]() |
![]() ![]() |
![]() |
![]() ![]()
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":
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 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 21 Dołączył: 1.09.2006 Skąd: Edinburgh Ostrzeżenie: (0%) ![]() ![]() |
produkty_pozycja?
Nie widze tego w strukturze bazy, ktora podajesz. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 11.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jest takie pole do określania pozycji danego produktu. Opcja ta jest wylaczona i wartosc dla wszystkich produktów wynosi "0" czyli jest taka sama. To nie stanowi.
Ps. Dodalem to pole do struktury, zeby nie bylo bledu w zapytaniu. Mimo wszystko Ten post edytował luckyluc 8.02.2008, 13:36:47 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 206 Pomógł: 21 Dołączył: 1.09.2006 Skąd: Edinburgh Ostrzeżenie: (0%) ![]() ![]() |
Jednak stanowi. Sortujesz uzywajac tego pola jako kryterium, podczas gdy wartosci sa ustawione na '0', czyli tak naprawde nie sortujesz tym polem. Dodaj do ORDER id zdjecia ASC i powinno byc OK.
Ten post edytował specialplan 8.02.2008, 13:44:11 |
|
|
![]()
Post
#5
|
|
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:
Ten post edytował luckyluc 8.02.2008, 20:08:14 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 2.02.2008 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:
W zapytaniu nie ma zadnego wskazania, które zdjęcie ma znaleźć się w wyniku zapytania. Może lepiej działalo by coś takiego?
Z tym, że zdjęcia winny być numerowane w ramach grupy produktów zawsze od 1. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 11.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
W zapytaniu nie ma zadnego wskazania, które zdjęcie ma znaleźć się w wyniku zapytania. Może lepiej działalo by coś takiego?
Z tym, że zdjęcia winny być numerowane w ramach grupy produktów zawsze od 1. Dzięki za zainteresowanie problemem, ale to nie rozwiązanie. Może inaczej. Jak ustawić dla LEFT JOIN zdjecia ON (zdjecia_produkt=produkty_id) aby dołączył jeden rekord o najniższej wartości zdjecia_id. Sens logiczny odnosi się oczywiście do następującego zapytania:
Ten post edytował luckyluc 10.02.2008, 01:53:52 |
|
|
![]()
Post
#8
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
ja bym to zrobil tak. U ciebie jest "GROUP BY produkty_id" ale mysql nie daje pewnosci w jakiej kolejnosci beda wiersze po zgrupowanu i czy pierwszy wystepujacy bedzie tym zgrupowanym i moim zdaniem stad sie bierze ten blad
zapytanie nie jest sprawdzone... ale ... powinno dzialac jesli nie wkradla sie jakas literowka (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pierwszy join dolacza do produktow id'eki minimalne zdjec dla poszczegolnych produktow a drugi dolacza do tych minimalnych reszte kolumn z tabeli zdjecia... Ten post edytował heaven 10.02.2008, 18:23:53 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 19:00 |