Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobranie wartości z 2 tabel jednocześnie
MateuszRyaN
post
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 (1 - 2)
droslaw
post
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
Mechanikzsz
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 30.09.2012

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


Hello,

Mam podobny Problem:

  1. $result2 = mysql_query("SELECT * FROM `SHIP` ORDER BY ID asc;");
  2. while($ds = mysql_fetch_array($result2)){
  3. echo '<a class="tip_trigger" href="#'.$ds['ID'].'" style="display: '.$ds['DISPLAY'].';" >';
  4. echo '<img src="statki/'.$ds['ID'].'.jpg"><span class="tip"><img src="miniatury/'.$ds['LOCATION'].''.$ds['ID'].'/image/image 1'.$ds['TYPE'].'">';
  5. echo '<img src="miniatury/'.$ds['LOCATION'].''.$ds['ID'].'/image/image 09'.$ds['TYPE'].'">';
  6. echo '<p class="shipdesign">';
  7. echo $ds['SHIPDESIGN'];
  8.  
  9. $wynik = mysql_query("SELECT * FROM `BONUSY` WHERE `DESIGNID` = '".$ds['id']."'");
  10. while($as = mysql_fetch_array($wynik)){
  11. echo '<p>'.$as['VALUE'].' '.$as['MODPARAMETERE'].' '.$as['MODTYPE'].'</p></br>';
  12. }
  13.  
  14. echo '</p></span></a>';
  15. }
  16. ?>



Gdy zmienię:
  1. $wynik = mysql_query("SELECT * FROM `BONUSY` WHERE `DESIGNID` = '.$ds['id'].'");


wyskakuje błąd Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /virtual/sea-fight.cba.pl/baza.php on line 62

Gdy wstawię jakąś liczbę zamiast $ds['id'] skrypt działa ;/
  1. $wynik = mysql_query("SELECT * FROM `BONUSY` WHERE `DESIGNID` = '380'");
Jakieś propozycję jak to rozwiązać ? (IMG:style_emoticons/default/smile.gif)


Problem rozwiązany (IMG:style_emoticons/default/smile.gif)

  1. $result2 = mysql_query("SELECT * FROM `SHIP` ORDER BY ID asc;");
  2. while($ds = mysql_fetch_array($result2)){
  3. echo '<a class="tip_trigger" href="#'.$ds['ID'].'" style="display: '.$ds['DISPLAY'].';" >';
  4. echo '<img src="statki/'.$ds['ID'].'.jpg"><span class="tip"><img src="miniatury/'.$ds['LOCATION'].''.$ds['ID'].'/image/image 1'.$ds['TYPE'].'">';
  5. echo '<img src="miniatury/'.$ds['LOCATION'].''.$ds['ID'].'/image/image 09'.$ds['TYPE'].'">';
  6. echo '<p class="shipdesign">';
  7. echo $ds['SHIPDESIGN'];
  8. echo '</br>';
  9.  
  10. $wynik = mysql_query("SELECT * FROM `BONUSY` WHERE `DESIGNID` BETWEEN 1 AND 500");
  11. while($as = mysql_fetch_array($wynik)){
  12.  
  13. if($ds['ID']===$as['DESIGNID'])
  14. { echo '<span>'.$as['VALUE'].''.$as['MODPARAMETER'].' '.$as['MODTYPE'].'</span></br>';
  15. }
  16. }
  17.  
  18. echo '</p></span></a>';
  19. }


Ten post edytował Mechanikzsz 30.09.2012, 15:04:43
Go to the top of the page
+Quote Post

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: 22.08.2025 - 16:25