Autor Zpráva
PHP_Nemaster
Profil
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
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
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?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0