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.


Nom : tables.PNG
Affichages : 97
Taille : 15,8 Ko

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 : Sélectionner tout - Visualiser dans une fenêtre à part
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>