Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Wybieranie danych z dwóch tabel
Forum PHP.pl > Forum > Przedszkole
orfeusz
Witam

mam taki problem, dwie tabele marki -> id, marka oraz modele id, id_marka, model
Chce to pogrupowac według modeli czyli
Audi
A8
A3

BMW
ZX
Z3

a dostaje w wyniku Audi A8 Audi A3 itd. Czy da rade to zrobic jednym zapytaniem czy to powinno sie w petli zapytanie odbywac wybierajcace model?
Dziekuje z gory za pomoc

  1. [/b]
  2. $st = $db->query('SELECT marki.marka as marka, marki.id as id_marka, modele.id_marka as id_model, modele.model as model FROM marki, modele WHERE marki.id=modele.id_marka GROUP BY model');
  3. [b]

Kod
foreach ($st->fetchAll() as $row){
echo $row['marka']."<br/> ";
echo $row['model']."<br/><br/>";

}
piotrooo89
poczytaj o distinct
orfeusz
robiłem DISTINCT ale to on wytnie tylko te rekordy ktore sa takie same i pokaze jeden czyli Audi A8 Audi A8 wtedy mi robil jeden ale to nie o to mi chodzi
memory
Kod
distinct marki.marka   .....           GROUP BY marka
nie dziala?
piotrooo89
wydaje mi się że źle próbowałeś...
  1. SELECT DISTINCT(marki.marka) AS marka, marki.id AS id_marka, modele.id_marka AS id_model, modele.model AS model FROM marki, modele WHERE marki.id=modele.id_marka GROUP BY model


nie działa?
orfeusz
jakos wlasnie dziwnie dziala bo jak mam Audi A8 i Audi A3 to pokazuje mi tylko Audi A8, wiec chyba cos zle działa, a wylaczajac GROUP BY dalej sa dublowane marki wiec DISTINCT chyba nie działa
Piniek
Proszę o poprawę tematu, to nie powinny być same tagi.
orfeusz
Cytat(Piniek @ 10.12.2008, 22:37:01 ) *
Proszę o poprawę tematu, to nie powinny być same tagi.



jaki mi powiesz jak go moge wyedytowac bo nie moge znalezc
webdice
Cytat(orfeusz @ 10.12.2008, 23:47:32 ) *
jaki mi powiesz jak go moge wyedytowac bo nie moge znalezc


No dole posta masz opcje edytuj.
orfeusz
naprawde nie ma tu nikogo kto mi moze w tym pomóc ?
phpion
Nie zrobisz takiego tricku w SQL. Musisz pobrać rekordy ze standardowym JOINEM, które na wyjściu zwrócą np.:
Cytat
marka | model
Audi | A3
Audi | A8
BMW | ZX
BMW | Z3

następnie dopiero w PHP musisz tak zbudować pętlę aby pokazywała markę samochodu tylko wtedy, gdy następuje jej zmiana. Podpowiedź: stwórz sobie dodatkową zmienną w PHP, w której będziesz przechowywał nazwę ostatnio wyświetlanej marki (bez względu na model) i w momencie gdy $aktualnaMarka != $ostatniaMarka wypisujesz nazwę $aktualnaMarka i przypisujesz tą wartość do $ostatniaMarka. Próbuj!
webdice
Prosił Cię ~Piniek o poprawienie tytułu, być może masz problemy z czytaniem, nie wnikam. Jak mi prześlesz na PW poprawny tytuł tematu to wątek otworze.

P.S. Po otworzeniu tematu dodaj odpowiednie bbcode.

Otwieram.
orfeusz
Cytat(phpion @ 11.12.2008, 17:36:09 ) *
Nie zrobisz takiego tricku w SQL. Musisz pobrać rekordy ze standardowym JOINEM, które na wyjściu zwrócą np.:

następnie dopiero w PHP musisz tak zbudować pętlę aby pokazywała markę samochodu tylko wtedy, gdy następuje jej zmiana. Podpowiedź: stwórz sobie dodatkową zmienną w PHP, w której będziesz przechowywał nazwę ostatnio wyświetlanej marki (bez względu na model) i w momencie gdy $aktualnaMarka != $ostatniaMarka wypisujesz nazwę $aktualnaMarka i przypisujesz tą wartość do $ostatniaMarka. Próbuj!


dzieki za pomoc chyba za bardzo chciałem to przekombinowac 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.