Champ: 'id_connexion' dans field list est ambigu

Résolu
caro__48 Messages postés 242 Date d'inscription   Statut Membre Dernière intervention   -  
caro__48 Messages postés 242 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un problème avec une requete sql que je n'arrive pas a régler, du coup j'ai besoin d'aide. J'ai deux tables une chat et l'autre connexion avec id_connexion en commun.

Grâce à cette requete je veux afficher les infos de "chat" qui dispose seulement de "id_connexion" (table connexion) car mes pages sont sécurisées.

Voici ma requete:
//récupère l'id_connexion de l'utilisateur connecté.
$nom_personne = $_SESSION['nom'];

//requete
$affichage = mysql_query ("SELECT id_chat, destinataire, pseudo, message, date, id_connexion FROM chat, connexion Where connexion.id_connexion = chat.id_connexion AND ( cast(date_format(date, '%d') as signed) = ".date("d")." or cast(date_format(date, '%d') as signed) = ".(date ("d")+1).") AND (SELECT id_connexion, Nom_utilisateur From connexion Where id_connexion = '.$nom_personne.') ") or die (mysql_error());

Mais j'ai une erreur. Il me dit que le champs id_connexion est ambigu.

Du coup j'ai refait ma requete avec des INNER JOINT (en sachant que j'ai toujours eu bcp de mal avec ces bêtes là :) )
$affichage=mysql_query("
select a.Nom_utilisateur as Nom_utilisateur,
a.id_connexion as id_connexion,
c1.destinataire as destinataire,
c1.pseudo as pseudo,
c1.message as message,
c1.date as date,
C2.id_chat as id_chat
from
chat c1 inner join (select max(c.id_chat) as id_chat
from chat c
group by c.id_connexion) as c2 on c1.id_chat = c2.id_chat
right outer join connexion a on a.id_connexion = c1.id_connexion where (cast(date_format(date, '%d') as signed) = ".date("d")." or cast(date_format(date, '%d') as signed) = ".(date ("d")+1).") AND (SELECT id_connexion, Nom_utilisateur From connexion Where id_connexion = '.$nom_personne.')") or die (mysql_error())

et la nouvelle erreur:
Operand should contain 1 column(s)

Si quelqu'un pouvait m'aider à corriger l'une ou l'autre des requetes je vous en serai vraiment reconnaissante car la pour le coup je rame sec :)

Merci

2 réponses

Thorak83 Messages postés 1051 Date d'inscription   Statut Membre Dernière intervention   156
 
Bonjour,

alors pour la 1ère partie de la requête SQL je verrais ceci
SELECT 
 CH.id_chat, 
 CH.destinataire, 
 CH.pseudo, 
 CH.message, 
 CH.date, 
 CH.id_connexion 
FROM chat as CH
INNER JOIN connexion as CN
ON CH.id_connexion = CN.id_connexion

ca c'est pour lier les 2 tables et n'avoir que les lignes de "chat" qui se trouve dans "connexion" avec id_connexion en commun

pour la 2ème partie, je comprend un peu moins l'histoire du (SELECT id_connexion, Nom_utilisateur From connexion Where id_connexion = '.$nom_personne.') pourquoi ne pas mettre CH.id_connexion =

Ensuite id_connexion n'est pas en numérique ?

Cordialement
0
caro__48 Messages postés 242 Date d'inscription   Statut Membre Dernière intervention   61
 
la requete marche impec, faut juste que j'arrive a définir que je souhaite afficher les infos de la table chat qui correspondent à l'id_connexion qui est en train de se servir du service, donc qui c'est connecté.
0
Thorak83 Messages postés 1051 Date d'inscription   Statut Membre Dernière intervention   156
 
CH.id_connexion = id_de_le_personne_connectée
0
caro__48 Messages postés 242 Date d'inscription   Statut Membre Dernière intervention   61
 
C'est bon j'ai trouvé

Merci beaucoup pour ton aide, tu ma sortie une bonne épine du pied!!
ET voila la requete finie!
$affichage=mysql_query("SELECT
CH.id_chat,
CH.destinataire,
CH.pseudo,
CH.message,
CH.date,
CH.id_connexion
FROM chat as CH
INNER JOIN connexion as CN
ON CH.id_connexion = CN.id_connexion
WHERE (cast(date_format(date, '%d') as signed) = ".date("d")." or cast(date_format(date, '%d') as signed) = ".(date ("d")+1).") AND destinataire = $nom_personne") or die (mysql_error());

Pourquoi faire compliqué quand on peut faire plus simple :)
Merci
0
caro__48 Messages postés 242 Date d'inscription   Statut Membre Dernière intervention   61
 
si l'id_connexion est en numérique, mais en fait à l'affichage je veux que ça m'affiche que les messages qui correspondent à l'id_connexion qui est "connecté" en ce moment.

C'est pour ça que je récupère l'id de la Session et que je le compare à celui de ma table.

Je suis pas sure d'être très claire...
Je vais essayer tes modifs!
0
Thorak83 Messages postés 1051 Date d'inscription   Statut Membre Dernière intervention   156
 
je pense que cette partie donc ne sert à rien. La jointure est la pour cela
0