Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Sortowanie z pobranych wyników?
Forum PHP.pl > Forum > Przedszkole
glacier
Witam,

Mam oto taki problem. Ostatnimi czasy, uczyłem się jak wyciągać rekordy z bazy MySQL za pomocą połączonych tabel. Mam skrypt, który obsługuje serwis z ogłoszeniami motoryzacyjnymi. Są cztery tabele:

1. Ogłoszenia - oglo
2. Marki - marki
3. Modele - modele
4. Zdjecia - photo

Piszę sobie oto taki kod:

  1. SELECT a.ide, a.marka, a.model, a.cena, a.rokprodukcji, p.idoglosz, p.src, p.minisrc, mr.ide, mr.marka, md.ide, md.modele FROM oglo a, photo p, marki mr, modele md WHERE a.ide=p.idoglosz AND a.marka=mr.ide AND a.model=md.ide LIMIT 5


Do tego momentu jest ok. Tworzę pętlę, z której wyciągam 5 rekordów i wszystko wyświetla się prawie tak jakbym sobie tego życzył. Problem zaczyna się w momencie pobranego z tabeli photo miniaturki zdjęcia. Jako, że dodając ogłoszenia, można do jednego dodać kilka zdjęć, system do każdego z nich tworzy miniaturkę (w chili obecnej 3 zdjęcia i 3 miniaturki). Od razu uprzedzę, że nie ma opcji wybrania, które zdjęcie jest zdjęciem "głównym". Miniaturki mają nadawane kolejne numery (np min_01, min_02, min_03). I teraz moje pytanie:

Jak stworzyć kod, czego użyć, do jakiej funkcji, manuala itp się odnieść, aby pętla pobierała mi np. miniaturkę z danego ID samochodu o najmniejszym numerze, zakładając, że zdjęcie główne ma zawsze najmniejszy numer przydzielany przez skrypt przy dodawaniu (np. ogloszenie 1 [min_01 - przod, min_02-bok, min_03 - tyl], ogłoszenie 2 [min_04 - przod, min_05-bok, min_06 - tyl])?
Ghost_78
Może tak...
Ja bym pobrał po najmniejszym ID klucza głównego. Bo jasną jest sytuacją, że pierwszy wgrany plik obrazka miał mniejsze ID niż każdy kolejny smile.gif.
glacier
jakaś podpowiedź, link do manuala na temat wspomnianego sposobu?
Vitka
Proponuję wykonać kolejne zapytanie do tabeli ze zdjęciami wyszukując rekordy z danym ID samochodu sortując po ID tabeli ze zdjęciami. W ten sposób powinieneś jako pierwszą miniaturkę otrzymać tą z najmniejszym id dla danego ID samochodu. Coś na zasadzie

  1. SELECT id FROM photo WHERE twoje_id_samochodu ORDER BY id ASC LIMIT 1
glacier
Witam,

Tak i też zrobiłem. Myślałem, że jest po prostu sposób, aby zrobić to w jednym zapytaniu, a nie wykorzystując pętle w pętli smile.gif

Temat można zamknąć.
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.