Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql/PHP] LEFT OUTER JOIN i podwójne wyciaganie danych z tej samej tabeli
cytrysek
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.01.2008

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


Witam,
zrobiłem sobie takie zapytanie:
  1. SELECT DISTINCT p.prop_co_ad_id, p.prop_zaco_ad_id, ad.ad_title, ad2.ad_title
  2. FROM zam714_prop p
  3. JOIN zam714_user u ON (p.prop_user_do_id = 423 )
  4. JOIN zam714_ad a ON (a.ad_owner=u.user_id)
  5. LEFT OUTER JOIN zam714_ad ad ON(ad.ad_id=p.prop_zaco_ad_id)
  6. LEFT OUTER JOIN zam714_ad ad2 ON(ad2.ad_id=p.prop_co_ad_id)


wyświetla to co chce, ale pojawia się problem dalej, otóż jak widać w zapytaniu, wyciągam 2x tą samą tabelę: ad_title, tyle, że za każdym razem wg innego id:

Kod
   prop_zaco_ad_id    |    ad_title        |  prop_co_ad_id  |   ad_title            
       11           |            opis1      |      16       |          tytul1
       2             |           opis2       |      5         |         tytul2
       2             |          opis2        |     11         |       tytul3


i teraz robię pętle w PHP:

  1. <?php
  2. $i=0;
  3. while ($row_prop3 = mysql_fetch_array($prop3))
  4. {
  5. $lProp3[$i]["ad_title"]=$row_prop3["ad_title"];
  6. $i++;
  7. }
  8. ?>


ale pokazuje tylko 1 wartość tytuł, a w zapyatniu mam: ad.ad_title, ad2.ad_title

Czy jest to możliwe, aby wyciągnąc w 1 zapytaniu 2 różne tytuły, zależne od innego id ?
Jak to poprawnie zapętlić ?

Dzięki za pomoc.
PW
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cytrysek
post
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.01.2008

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


Dzięki.
O to właśnie chodziło.

pzdr.
PW

No to jeszcze jedna kwestia:

Wyświetlam sobie dane wyciągnięte z poprzedniego zapytania w 2 komorkach tabeli:
Kod
tytul2 (2): faek (5)
tytul2 (2): łódka Bols (11)

...itd

a robie to tak:
  1. <?php
  2. $prop3=q($sql="select .....jak wyzej ");
  3. $i=0;
  4. while ($row_prop3 = mysql_fetch_array($prop3))
  5. {
  6. $lProp3[$i]["title_zaco_ad_id"]=$row_prop3["ad_title"];
  7. $lProp3[$i]["title_co_ad_id"]=$row_prop3["tytul2"];
  8.  
  9. $i++;
  10. }
  11. $tplMember->assign("prop_co",$lProp3);
  12. ?>


a ponieważ to SMARTY, to dalej:

  1. {section name=prop loop=$prop_co}
  2. <tr><td>
  3. {$prop_co[prop].title_co_ad_id} ({$prop_co[prop].propozycje_co_ad_id}): </td><td>
  4. {$prop_co[prop].title_zaco_ad_id} ({$prop_co[prop].propozycje_zaco_ad_id})
  5. <br></td></tr>
  6. {/section}



no dobra, a jak zrobić coś takiego:

Kod
tytul2 (2): faek (5)
                 łódka Bols (11)


czyli jeśli w pierwszej komórce id (w tym wypadku2) wystepuje wiecej niz 1 raz - to wyswietla sie on tylko raz, a w prawej komorce pozostale pasujace opisy pozostaja ?

pzdr.
PW
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 03:02