Page 1 sur 1

Requêtes imbriquées

Posté : 23 oct. 2013, 17:22
par two3d
Bonjour,

je souhaiterai aller chercher un nom dans une autre table sans pour autant faire une autre requête dans mon while pour le faire, voici mon code:
			<?php
			$req_dm = mysql_query("SELECT id,id_regie,nom_regie_rewrite,commentaire,date FROM commentaires ORDER BY id DESC LIMIT 5");
			if(mysql_num_rows($req_dm) == 0) {
				echo "<li>Aucun commentaire ajouté pour le moment.</li>";
			} else {
				while($info_dm = mysql_fetch_assoc($req_dm)) {
					$req = mysql_query("SELECT nom,nom_rewrite FROM regies WHERE nom_rewrite = '".$info_dm['nom_regie_rewrite']."'");
					$info = mysql_fetch_assoc($req);
					?>
					<li>
						<span class="date_dernier_msg"><a href="<?php echo $NAVIG['url_site']."/".url_regie($info_dm['id_regie'],$info_dm['nom_regie_rewrite'])."#".$info_dm['id']; ?>" title="Posté le <?php echo date("d-m-Y h:i",$info_dm['date']); ?>"><?php echo $info['nom']; ?></a></span> <?php echo couperChaine(formcode($info_dm['commentaire'],1),50); ?>
					</li>
					<?php
				}
			}
			?>
Je souhaiterai enlever cette requête du code:
$req = mysql_query("SELECT nom,nom_rewrite FROM regies WHERE nom_rewrite = '".$info_dm['nom_regie_rewrite']."'");
                                        $info = mysql_fetch_assoc($req);
et la mettre dans celle ci:
$req_dm = mysql_query("SELECT id,id_regie,nom_regie_rewrite,commentaire,date FROM commentaires ORDER BY id DESC LIMIT 5");
Merci d'avance pour vos futures solutions.

Re: Requêtes imbriquées

Posté : 23 oct. 2013, 17:54
par yann18
bonjour,
en faisant une jointure entre la table commentaire et la table regie, ta requête devient:
 
$sql="SELECT c.id,c.id_regie,c.nom_regie_rewrite,c.commentaire,c.date,r.nom,r.nom_rewrite FROM commentaires c JOIN regies r ON r. nom_rewrite=c.nom_regie_rewrite ORDER BY c.id DESC LIMIT 5";
$req_dm = mysql_query($sql);
pour des questions d'optimisation il est beaucoup plus intéressant que la jointure se fasse entre la clé primaire et la clé étrangère(id_regie et id) .

Re: Requêtes imbriquées

Posté : 23 oct. 2013, 18:13
par two3d
Merci pour la solution

par contre je comprend pas ce que tu veux dire à la fin, désolé