Quelle syntaxe pou mysql_fetch_array avec jointure?

Zerifah
Invité n'ayant pas de compte PHPfrance

13 août 2006, 19:41

Je fais une requête sur deux tables, p.ex t1 et t2 :
$requete = "SELECT * FROM t1, t2";
$resultat = mysql_query($requete);
Ensuite, je récupère le contenu de ma requête:
$val = mysql_fetch_array($resultat)
Le problème est que dans les tables 1 et 2, j'ai un même nom de colonne "id" et j'aimerais récupérer ces id. J'ai essayé :
$id1 = $val["t1.id"];
$id2 = $val["t2.id"];
Mais ça ne marche pas. Est-ce que vous connaissez la syntaxe juste?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 août 2006, 19:48

Dans ta requete, il faut que tu nommes tes champs

Code : Tout sélectionner

SELECT t1.id, t2.id FROM t1, t2
D'une manière générale, il faut éviter d'utiliser * dans un SELECT pour ne remonter que les données nécessaires et donc réduire les échanges serveur de données <=> serveur web.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Zerifah
Invité n'ayant pas de compte PHPfrance

13 août 2006, 20:03

Merci du conseil. Néanmoins, lorsque je veux récupérer ces variable, cela ne fonctionne toujours pas avec
$id1 = $val["t1.id"];
$id2 = $val["t2.id"];
Comment récupérer alors ces variables

Eléphanteau du PHP | 24 Messages

13 août 2006, 20:17

Lorsque tu fait ta requête, crée un identifiant unique pour ton nom de chanp.
Par ex :

Code : Tout sélectionner

SELECT t1.id AS t1_id, t2.id AS t2_id FROM t1, t2
ensuite, tu peux récupérer tes données ainsi :

Code : Tout sélectionner

$id1 = $val["t1_id"]; $id2 = $val["t2_id"];
Voilà

Zerifah
Invité n'ayant pas de compte PHPfrance

13 août 2006, 20:36

Un tout grand merci, ça répond!!! :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 août 2006, 21:40

Effectivement, j'oubliais l'alias :oops:

merci de ta précision Isuka :pouce:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer