Afisare informatii din mai multe tabele

cadou
Mesaje: 284

Afisare informatii din mai multe tabele

Salut. Revin cu alta postare.
Nu am idee cum as putea sa fac urmatorul lucru:
Vreau sa selectez din tabelul X Y Z informatii care sa le afisez in functie de data, cele mai recente informatii sa apara.
Pe pagina unde doresc sa le afisez vreau sa mi se afiseze maxim 15 rezultate in total, nu din fiecare tabel.

Acest lucru este ceva de genul ce informatii sau adaugat recent pe site :)
Cum as putea sa fac acest lucru, habar nu am de unde sa incep :D

MarPlo
Salut
1. Daca intre acele tabele exista o reatie de legatura, cu coloana comuna, poti sa faci un Select cu LEFT JOIN si cu LIMIT 15.
Cam asa:

Cod: Selectaţi tot

$sql ="SELECT t1.col1, t1.col2, t2.col_x, t3.col_y FROM table_1 AS t1 LEFT JOIN table_2 AS t2 ON t1.id = t2.id LEFT JOIN table_3 AS t3 ON t3.col_id = t1.id ORDER BY t1.col_data DESC limit 15";
2. Daca intre tabele nu e o legatura comuna, poti sa faci ca in acest exemplu:

Cod: Selectaţi tot

$sql ="SELECT t1.col1, t1.col2, t2.col_x, t3.col_y FROM table_1 AS t1, table_2 AS t2, table_3 AS t3 ORDER BY t1.col_data, t2.col_data, t3.other_col DESC limit 15";

cadou
nu exista legatura comuna intre ele, sunt putine coloane ce sunt in toate tabelele...
Am incercat ceva dupa exemplu, dar nu am reusit ...

Cod: Selectaţi tot

$noutati = $dbh->query("SELECT bancuri.banc, intrebari.intrebare, mesaje.mesaj FROM `bancuri` AS A, `intrebari` AS B, `mesaje` AS C ORDER BY A.data, B.data, C.data DESC limit 15"); while ($r = $noutati->fetch(PDO::FETCH_ASSOC)) { echo $r['banc']; }
imi da eroare la randul cu while:

Cod: Selectaţi tot

Fatal error: Uncaught Error: Call to a member function fetch() on boolean in .... Stack trace: #0 {main} thrown in
Nu as putea in loc de "bancuri.banc" sa selectez tot din tabelul banc ? ( la fel pentru toate tabelele )

MarPlo
Incearca asa:

Cod: Selectaţi tot

$sql ="SELECT A.banc, B.intrebare, C.mesaj FROM `bancuri` AS A, `intrebari` AS B, `mesaje` AS C ORDER BY A.data, B.data, C.data DESC limit 15";
Daca nu merge, testeaza instructiunea sql direct in phpmyadmin si vezi ce eroare indica sa o corectezi.

- Cand se face select in mai multe tabele, poti selecta toate coloanele din unul (de exemplu: A.* ) doar daca nici una din acele coloane (din tabeul A) nu se afla in vreunul din celelalte tabele.

cadou
Multumesc frumos pentru raspunsuri, dar am facut altceva :D un tabel separat unde bag ce informatii sau adaugat in celelelate tabele :D si am scapat de bataia de cap cu selectarea din mai multe tabele, aleg din unul singur ceea ce doresc :D

Subiecte similare