Afisare informatii din mai multe tabele
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
cadou
- Mesaje: 328
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

MarPlo
Mesaje: 4343
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
Mesaje: 328
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
Mesaje: 4343
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
Mesaje: 328
Multumesc frumos pentru raspunsuri, dar am facut altceva

un tabel separat unde bag ce informatii sau adaugat in celelelate tabele

si am scapat de bataia de cap cu selectarea din mai multe tabele, aleg din unul singur ceea ce doresc

Subiecte similare
-
Afisare numar cel mai mare dintr o coloana
PHP - MySQL - XML
Primul mesaj
Bună Marplo
Vreau să extrag din coloan pret cel mai mare numar ca de exemplu 4444.
Mie imi afisează 54 în loc de 4444, dacă în loc de 4444 modific...
Ultimul mesaj
Am schimbat `pret` varchar(20) DEFAULT NULL in `pret` int(11) NOT NULL ca la tine si merge.
Multumesc