Page 1 sur 1

Quelle syntaxe pou mysql_fetch_array avec jointure?

Posté : 13 août 2006, 19:41
par Zerifah
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?

Posté : 13 août 2006, 19:48
par zeus
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.

Quelle syntaxe pou mysql_fetch_array avec jointure?

Posté : 13 août 2006, 20:03
par Zerifah
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

Posté : 13 août 2006, 20:17
par Isuka
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à

Quelle syntaxe pou mysql_fetch_array avec jointure?

Posté : 13 août 2006, 20:36
par Zerifah
Un tout grand merci, ça répond!!! :D

Posté : 13 août 2006, 21:40
par zeus
Effectivement, j'oubliais l'alias :oops:

merci de ta précision Isuka :pouce: