Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobranie wartości z 2 tabel jednocześnie
MateuszRyaN
post 28.09.2012, 18:44:58
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

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


Witam, mam 2 tabele:
"kontrahenci"
  1. +----------------+------------------+
  2. | id_kontrahenta | kontrahent_nazwa |
  3. +----------------+------------------+
  4. | 1 | firma_1 |
  5. | 2 | firma_2 |
  6. | 3 | firma_3 |
  7. +----------------+------------------+

"cennik"
  1. +----+----------------+--------+----------------+
  2. | id | id_kontrahenta | cena | artykul |
  3. +----+----------------+--------+----------------+
  4. | 1 | 1 | 11.00 | Ręczniki |
  5. | 2 | 1 | 22.00 | Szmaty |
  6. | 3 | 1 | 33.00 | Obrusy |
  7. | 4 | 1 | 44.00 | Poszwy |
  8. | 7 | 2 | 111.00 | Kołddry |
  9. | 8 | 2 | 222.00 | Poduszki |
  10. +----+----------------+--------+----------------+


Próbuje uzyskać z tego taki efekt:

firma_1
Ręczniki 11.00
Szmaty 22.00
Obrusy 33.00
Poszwy 44.00

firma_2
Kołdry 111.00
Poduszki 222.00

Próbowałem to zrobic na jednym zapytaniu, kombinowałem z joinem ale coś nie wyszło...
  1. SELECT kontrahenci.id_kontrahenta, kontrahenci.kontrahent_nazwa,
  2. cennik.id_kontrahenta, cennik.artykul, cennik.cena
  3. FROM kontrahenci JOIN cennik ON kontrahenci.id_kontrahenta = cennik.id_kontrahenta

Ostatecznie mam na 2 zapytaniach...ale wyświetla mi również na samym dole firma_3 (który jest pusty), nie zawiera artykułów, a chce zeby pokazywało mi tylko te firmy które posiadają artykuły. Kod:
  1. $query1 = mysql_query("SELECT id_kontrahenta, kontrahent_nazwa FROM kontrahenci ORDER BY kontrahent_nazwa");
  2. while ( $row1 = mysql_fetch_array($query1)) {
  3. $query2 = mysql_query("SELECT artykul,cena FROM cennik WHERE id_kontrahenta='".$row1['id_kontrahenta']."'");
  4. echo $row1['kontrahent_nazwa'].'<br><br>';
  5. while ( $row2 = mysql_fetch_array($query2)) {
  6. echo $row2['artykul'].' '.$row['cena'].'<br>';
  7. }
  8. }

Podejrzewam że musi to być zrobione tym joinem w jednym zapytaniu, ale nie umiem sobie poradzić. Prosze o pomoc.
Pozdrawiam.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
droslaw
post 28.09.2012, 20:59:59
Post #2





Grupa: Zarejestrowani
Postów: 98
Pomógł: 33
Dołączył: 10.05.2011
Skąd: Krak

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


Cytat
Próbowałem to zrobic na jednym zapytaniu, kombinowałem z joinem ale coś nie wyszło...

Co nie wyszło, bo to zapytanie wygląda mi na dobre. Zwraca złe wyniki, serwer zgłasza błąd? Opisz problem dokładniej.
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 19:38