Autor | Zpráva | ||
---|---|---|---|
PHP_Nemaster Profil |
#1 · Zasláno: 29. 12. 2011, 22:46:18 · Upravil/a: PHP_Nemaster
Dobrý den,
mám takový problém se spojením dvou tabulek. Mám v databázi tabulky: articles, ve které jsou články a sections - rubriky na webu V articles mám sloupec section_id, ve kterém je id rubriky, ve které se článek nachází, a když článek vypisuji, potřebuji podle section_id vybrat název rubriky z tabulky sections. Struktura: articles id, section_id sections sid, name Zkusil jsem to takhle: $select_article = "SELECT art.*, sec.sid, sec.name FROM articles art, sections sec WHERE art.section_id = sec.sid AND art.id = '".$_GET['id']."'; "; $result_article = mysql_query( $select_article ); $article = mysql_fetch_array( $result_article ); echo $article['name']; // Nevypíše nic A pak takto: $select_article = "SELECT art.*, sec.sid, sec.name FROM articles art LEFT JOIN sections sec ON art.section_id = sec.sid AND art.id = '".$_GET['id']."'; "; $result_article = mysql_query( $select_article ); $article = mysql_fetch_array( $result_article ); echo $article['name']; // Sice funguje, vypíše název sekce, ale at' dám jakékoliv $_GET['id'], vypisuje VŽDY pouze článek s ID 1 - nevím proč Poradíte někdo, v čem je problém? Možná je to jenom nějaký překlep, ale dlouho už na to nemůžu přijít. Předem děkuji za odpověd' |
||
Str4wberry Profil |
#2 · Zasláno: 29. 12. 2011, 23:21:51
Zdá se mi, že chyba je v tom, že se snažíš spojit tabulky i na základě
art.id = '".$_GET['id']."' — to by mělo patřit do WHERE , chceš li použít LEFT JOIN . Kdybys použil INNER JOIN , tak by to mohlo fungovat rovnou.
|
||
PHP_Nemaster Profil |
#3 · Zasláno: 29. 12. 2011, 23:26:24 · Upravil/a: PHP_Nemaster
Str4wberry:
Myslíte takto? LEFT JOIN sections sec ON art.section_id = sec.sid WHERE art.id = '".$_GET['id']."'; "; Zatím mi bohužel moc nejde sestavovat složité dotazy, mohl byste prosím trochu poradit? |
||
Str4wberry Profil |
Přesně tak (případně nahradit
LEFT JOIN za INNER JOIN ), nefunguje žádoucím způsobem?
|
||
Časová prodleva: 12 let
|
0