Accéder à table.champs dans une requête

Tox
Petit nouveau ! | 3 Messages

27 juil. 2011, 14:27

Bonjour, j'ai un soucis avec une requête et je ne sais pas comment formuler mes phrases de recherche du coup je suis venu chercher de l'aide :)

Admettons que j'ai 3 tables Dossier, Client et Debiteur.
Dossier
-id
-client
-debiteur

Client
-id
-raisonsociale

Debiteur
-id
-raisonsociale
Ma requête est :
$req = SELECT * FROM dossier INNER JOIN client ON client_id = client.id INNER JOIN debiteur ON debiteur_id = debiteur.id;

...

$enreg = $rs->fetch_object();

ou

$enreg = $rs->fetch_assoc();
Et là j'aimerais pouvoir faire ça mais ça ne marche pas :
echo $enreg["debiteur.raisonsociale"];

echo $enreg["client.raisonsociale"];
Car
Modifié en dernier par Tox le 29 juil. 2011, 11:19, modifié 1 fois.

devlop78
Invité n'ayant pas de compte PHPfrance

28 juil. 2011, 02:53

Profite de tes reflexions pour te mettre à jour avec mysqli ou PDO, et active les erreurs, affiche les, faires des var_dump() sur les variables, et donne nous plus de données pour que l'on puisse te répondre.

Tox
Petit nouveau ! | 3 Messages

29 juil. 2011, 11:22

Bonjour, j'ai éditer le premier post en expliquant mieux mon problème.

Comme les champs de Client, et de Debiteur ont les mêmes noms, la requête ne récupère que les derniers appelés....

devlop78
Invité n'ayant pas de compte PHPfrance

29 juil. 2011, 14:09

C'est à toi de les renommer explicitement

SELECT Client.id AS Client_id, ... FROM ...

MySQL ne préfixe pas par défaut le nom des colonnes de résultat par le nom de la table. Je ne sais même pas si on peut lui demander.

Tox
Petit nouveau ! | 3 Messages

30 juil. 2011, 00:34

C'est embêtant...

Est-il préférable de préfixer mes champs directement dans ma table ?
Client
-client_id
-client_raisonsociale
Ou alors de les aliaser dans ma requête
SELECT Client.id AS Client_id, ... FROM ...