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 -
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
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
A voir également:
- Dans field list est ambigu
- Champ lexical de village ✓ - Forum Études / Formation High-Tech
- Excel champ calculé avec condition - Forum Excel
- Le nom du champ de tableau croisé dynamique n'est pas valide - Forum Excel
- Tableau croisé, fonction SI dans un calcul ✓ - Forum Excel
- Désolé nous ne pouvons pas résumer ce champ avec somme ✓ - Forum Excel
2 réponses
Bonjour,
alors pour la 1ère partie de la requête SQL je verrais ceci
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
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
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!
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!
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