Regrouper plusieurs requetes SQL

Par Piwiteam, il y a 6 ans


Bonjour,

Je suis en cours de création de mon site, j'ai une table avec plsusieurs champs faisant appel a d'autres table. Jusque la aucuns soucis, je récupère les données correspondantes suivant ce code :

<?php // je fais appel au fichier de connection à la base de données require_once('includes/config.php'); // je prépare mes requete d'association $req001 = $bdd->prepare("SELECT * FROM ma_table1 INNER JOIN ma_table2 ON ma_table1.id = ma_table2.id"); $req002 = $bdd->prepare("SELECT * FROM ma_table1 INNER JOIN ma_table3 ON ma_table1.id = ma_table3.id"); $req003 = $bdd->prepare("SELECT * FROM ma_table1 INNER JOIN ma_table4 ON ma_table1.id = ma_table4.id"); $req004 = $bdd->prepare("SELECT * FROM ma_table1 INNER JOIN ma_table5 ON ma_table1.id = ma_table5.id"); // j'execute chaques requetes $req002->execute(); $req003->execute(); $req004->execute(); $req001->execute(); //je récupère les informations correspondantes while ($donnees1 = $req001->fetch()) while ($donnees2 = $req002->fetch()) while ($donnees3 = $req003->fetch()) while ($donnees4 = $req004->fetch()) { // j'affiche les information voulues echo $donnees1['nom']; echo $donnees2['nom']; echo $donnees3['nom']; echo $donnees4['nom']; } // je ferme le traitement de mes requètes $req001->closeCursor(); $req002->closeCursor(); $req003->closeCursor(); $req004->closeCursor(); ?>

Maintenant que cela fonctionne très bien, je souhaiterais savoir si y a moyen de réduire toutes ces requètes, car imaginons que j'en est 50, sa va faire des lignes, et des lignes de code :(

Merci d'avance de votre aide

1 réponse

Opening1, il y a 6 ans
$req=$bdd->prepare("select * from maTable1 join maTable2 on maTable1.idmaTable2=maTable2.id join maTable3 on maTable1.idmaTable3=maTable3.id ORDER BY maTable1.id ASC");