1 pièce(s) jointe(s)
MySql: jointure de tables pour maillage interne
Bonjour,
Ceci est un exemple basique pour faire un maillage interne manuel de pages de news.
j'ai une table "news" avec 4 champs:
'id' int primary_key
'titre' text
'article' text
'rubrique' text
J'ai fait une table de correspondance que j'ai nommé "articles_similaires" où chaque news a
2 news similaires ou connexes, représentés par leurs id que j'ai nommé artsim1 et artsim2.
Pièce jointe 162111
Par exemple, la news 1 (id= 1) a 2 articles similaires: la news 4 (id=4) et la news 6 (id=6);
la news 2 (id =2) a 2 articles similaires: la news3 (id=3) et la news 5 (id=5) etc.....
Comment faire ma requête Sql pour afficher les titres de ces news similaires après l'article?
Mon code m'affiche invariablement les titres des news dont les id sont 4 et 6 (la première ligne de la table articles_similaires.
Je bloque au niveau des jointures. Merci pour votre aide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <ul>
<li>
<?php
$sql='SELECT titre FROM news INNER JOIN articles_similaires WHERE news.id = articles_similaires.artsim1';
$req = mysql_query($sql) or die (mysql_error());
$data = mysql_fetch_array($req);
?>
<a href="../articles/<?php echo $data['rubrique'];?>.php?id=<?php echo $data['id'];?>">
<h3><?php echo $data['titre'];?></h3>
</a>
</li>
<li>
<?php
$sql='SELECT titre FROM news INNER JOIN articles_similaires WHERE news.id = articles_similaires.artsim2';
$req = mysql_query($sql) or die (mysql_error());
$data = mysql_fetch_array($req);
?>
<a href="../articles/<?php echo $data['rubrique'];?>.php?id=<?php echo $data['id'];?>">
<h3><?php echo $data['titre'];?></h3>
</a>
</li>
</ul> |