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
Afisare informatii din mai multe tabele
-
- Mesaje:328
Afisare informatii din mai multe tabele
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:
2. Daca intre tabele nu e o legatura comuna, poti sa faci ca in acest exemplu:
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";
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 ...
imi da eroare la randul cu while:
Nu as putea in loc de "bancuri.banc" sa selectez tot din tabelul banc ? ( la fel pentru 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'];
}
Cod: Selectaţi tot
Fatal error: Uncaught Error: Call to a member function fetch() on boolean in .... Stack trace: #0 {main} thrown in
MarPlo
Mesaje:4343
Incearca asa:
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.
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";
- 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ă MarploUltimul mesaj
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...
Am schimbat `pret` varchar(20) DEFAULT NULL in `pret` int(11) NOT NULL ca la tine si merge.
Multumesc