fetch() sur Requete multitable
Bonjour,
Je suis en train de passer un site plateforme de mysql à PDO avec plus de 1000 requêtes à la base de données.
Ce site utilise pas mal de requêtes multitables dans lesquelles deux tables peuvent posséder des champs avec des noms identiques.
Ayez aussi à l'idée, que ces requêtes multitables peuvent, dans certain cas, faire appel plusieurs fois à la même table, et donc avec des noms de données forcément identiques.
Voila comment on s'en sortait avec mysql sur une requête faisant appel à 2 fois la même table :
Code:
1 2 3 4
| $requete = "SELECT t1.data, t2.data FROM table t1";
$requete = $requete . "LEFT JOIN table t2 ON t2.id2=t1.id1 WHERE ...";
$resultat = mysql_query($requette)
$num_rows = mysql_num_rows($resultat) |
Pour accéder aux données on faisait par exemple :
Code:
1 2 3 4
| for($row=0;$row<$num_rows;$row++) {
data1 = mysql_result($resultat,$row,'t1.data');
data2 = mysql_result($resultat,$row,'t2.data');
} |
Avec PDO, j'ai voulu retranscrire cette requette avec des fetch(). pour accéder aux données, j'avais pensé faire
Code:
1 2 3 4 5
| $resultat = $bdd->query($requette)
while($row=$resultat->fetch()) {
$data1 = $row['t1.data']
$data2 = $row['t2.data']
} |
Mais PDO me refuse l'écriture t1.data et ne reconnait pas les data concernées
Alors faut il que l'utilisation de PDO nous force à intervenir dans les requettes sql ?
En faisant par exemple
Code:
1 2 3 4 5 6 7
| $requete = "SELECT t1.data as data1, t2.data as data2 from table1 t1";
$requete = $requete . "LEFT JOIN table2 t2 ON t2.id=t1.id WHERE t1.id = NB";
$resultat = $bdd->query($requete)
while($row=$resultat->fetch()) {
$data1 = $row['data1']
$data2 = $row['data2']
} |
Merci de vos réponses éclairées
Zakuli