Erreur Unknown Requète SQL
Résolu
LaChaux78
Messages postés
583
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Avec ma requète j'ai un message d'erreur que je n'arrive pas à résoudre, pouvez-vous me donner votre avis s'ils vous plait. Je vous remercie.
Avec ma requète j'ai un message d'erreur que je n'arrive pas à résoudre, pouvez-vous me donner votre avis s'ils vous plait. Je vous remercie.
$requete = "SELECT nom,prenom,email,annee,".TBMANIF.".publier FROM ".TBADH." LEFT JOIN ".TBPERS." ON ".TBPERS.".idpers = ".TBADH.".idpers WHERE ".TBMANIF.".publier = false AND annee = '$aadh' AND ".TBADH.".idclas = 2"; $resultat = ExecRequete($requete,$connexion); Erreur dans la requête! Unknown column 'cdc_manifestations.publier' in 'field list'
A voir également:
- Erreur Unknown Requète SQL
- Usb\unknown - Télécharger - Optimisation
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
10 réponses
Bonjour,
Déjà .. quand tu as un souci de requête ... commence par en faire un ECHO et regarde ce que ça donne...
Lorsque je vois :
Tu vois bien que tu as la table TBADH et la table TBPERS ... mais tu essaies de récupérer le champ publier de la table TBMANIF
Normal que ça plante.
Déjà .. quand tu as un souci de requête ... commence par en faire un ECHO et regarde ce que ça donne...
Lorsque je vois :
SELECT nom,prenom,email,annee,".TBMANIF.".publier FROM ".TBADH." LEFT JOIN ".TBPERS."
Tu vois bien que tu as la table TBADH et la table TBPERS ... mais tu essaies de récupérer le champ publier de la table TBMANIF
Normal que ça plante.
Bonjour
En fait je suis obligé de faire 2 requètes à ton avis? ou il y a une autre possibilité.
Merci
En fait je suis obligé de faire 2 requètes à ton avis? ou il y a une autre possibilité.
$requete = "SELECT publier FROM ".TBMANIF." WHERE ".TBMANIF.".publier = false"; $resultat = ExecRequete($requete,$connexion); $requete = "SELECT nom,prenom,email,annee FROM ".TBADH." LEFT JOIN ".TBPERS." ON ".TBPERS.".idpers = ".TBADH.".idpers WHERE annee = '$aadh' AND ".TBADH.".idclas = 2"; $resultat = ExecRequete($requete,$connexion);
Merci
Bonjour
Justement il n'y a pas de lien entre la table TBMANIF et les 2 autres tables. Et j'ai une clause WHERE de cette table en fait.
Justement il n'y a pas de lien entre la table TBMANIF et les 2 autres tables. Et j'ai une clause WHERE de cette table en fait.
On ne comprend plus rien ...
Commence déjà par :
- Nous montrer les REQUETES sql (sans le code php )
(donc suite à un echo ... )
- Nous montrer la structure de tes tables (nous faire un dump par exemple)
- Nous expliquer EXACTEMENT ce que tu souhaites obtenir.
Seulement la.. nous pourrons envisager de te répondre....
Commence déjà par :
- Nous montrer les REQUETES sql (sans le code php )
(donc suite à un echo ... )
- Nous montrer la structure de tes tables (nous faire un dump par exemple)
- Nous expliquer EXACTEMENT ce que tu souhaites obtenir.
Seulement la.. nous pourrons envisager de te répondre....
Bonjour
Alors voilà...
J'ai un formulaire, lorsque je renseigne le formulaire, j'envoie un mail aux membres uniquement si je coche via une checkbox qui correspond aux champ "publier" de ma table TBMANIF si publier est à false le mail est envoyé si publier est à true aucun mail ne sera envoyé.
Ensuite je ne souhaite pas envoyer le mail à tous mais seulement à une certaine catégorie de membre.
Voici la condition correspondante à la table TBMANIF
Et pour sélectionner certains membres il y a les tables TBADH et TBPERS. Voici ce que ça donne je n'ai pas tout mis la page après la boucle while il y a l'envoi de mail sans interet pour mon problème.
Je vous remercie.
Alors voilà...
J'ai un formulaire, lorsque je renseigne le formulaire, j'envoie un mail aux membres uniquement si je coche via une checkbox qui correspond aux champ "publier" de ma table TBMANIF si publier est à false le mail est envoyé si publier est à true aucun mail ne sera envoyé.
Ensuite je ne souhaite pas envoyer le mail à tous mais seulement à une certaine catégorie de membre.
Voici la condition correspondante à la table TBMANIF
WHERE ".TBMANIF.".publier = false";
Et pour sélectionner certains membres il y a les tables TBADH et TBPERS. Voici ce que ça donne je n'ai pas tout mis la page après la boucle while il y a l'envoi de mail sans interet pour mon problème.
Je vous remercie.
switch($_POST['haction']) { case 'new': $requete = "INSERT INTO ".TBMANIF." (lieu,dmanif,event,idhorai,idindem,publier,descmanif,inscrip) VALUES ('$lieu','$dmanif','$event','$idhorai','$idindem','$publier','$descmanif','$inscrip')"; $typenr = "enregistré"; $reqaj = $requete; $resultat = ExecRequete($requete,$connexion); $requete = "SELECT publier FROM ".TBMANIF." WHERE ".TBMANIF.".publier = false"; $resultat = ExecRequete($requete,$connexion); $requete = "SELECT nom,prenom,email,annee FROM ".TBADH." LEFT JOIN ".TBPERS." ON ".TBPERS.".idpers = ".TBADH.".idpers WHERE annee = '$aadh' AND ".TBADH.".idclas = 4"; $resultat = ExecRequete($requete,$connexion); while ($r = mysql_fetch_object($resultat)) {
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Par contre si je fait comme ça avec l'ancienne syntaxe tout fonctionne bien...
switch($_POST['haction']) { case 'new': $requete = "INSERT INTO ".TBMANIF." (lieu,dmanif,event,idhorai,idindem,publier,descmanif,inscrip) VALUES ('$lieu','$dmanif','$event','$idhorai','$idindem','$publier','$descmanif','$inscrip')"; $typenr = "enregistré"; $reqaj = $requete; $resultat = ExecRequete($requete,$connexion); $requete = "SELECT nom,prenom,email,annee,publier FROM ".TBPERS.",".TBADH.",".TBMANIF." WHERE ".TBPERS.".idpers = ".TBADH.".idpers AND ".TBMANIF.".publier = false AND annee='$aadh' AND idclas = 4 $resultat = ExecRequete($requete,$connexion); while ($r = mysql_fetch_object($resultat)) {
Bonjour,
Mais en fait, tu sais déjà ce que vaut TBMANIF.publier puisque tu viens de l'insérer...
Donc pourquoi ne pas simplement faire
Dans les requête SQL, on ne peut pas faire appel, dans 99,9% des cas, à une table sans donner une clause de jointure. Tu vois bien que tu utilises TBPERS et TBADH en les reliant avec TBPERS.idpers = TBADH.idpers. Il FAUT faire pareil avec TBMANIF sinon tu ne maîtrises pas le résultat de la requête (plus précisément, elle effectuerait un produit cartésien de tes tables, démultipliant le nombre de lignes en résultat)
Xavier
Mais en fait, tu sais déjà ce que vaut TBMANIF.publier puisque tu viens de l'insérer...
Donc pourquoi ne pas simplement faire
if ($publier == "ce que tu veux")...
Dans les requête SQL, on ne peut pas faire appel, dans 99,9% des cas, à une table sans donner une clause de jointure. Tu vois bien que tu utilises TBPERS et TBADH en les reliant avec TBPERS.idpers = TBADH.idpers. Il FAUT faire pareil avec TBMANIF sinon tu ne maîtrises pas le résultat de la requête (plus précisément, elle effectuerait un produit cartésien de tes tables, démultipliant le nombre de lignes en résultat)
Xavier
Bonjour,
Pouvez-vous me dire si avec la nouvelle syntaxe je suis obligé de faire deux requète s'ils vous plait.
Je vous remercie.
Pouvez-vous me dire si avec la nouvelle syntaxe je suis obligé de faire deux requète s'ils vous plait.
Je vous remercie.
Bonjour,
Alors j'ai fait comme ça peut tu me dire si c'est cohérent s'il te plait, merci.
Pour te faire une récap...
Si publier est à false la requète SELECT choisit la catégorie de membre pour envoyer le mail sinon juste l'INSERT sera exécuté.
Alors j'ai fait comme ça peut tu me dire si c'est cohérent s'il te plait, merci.
Pour te faire une récap...
Si publier est à false la requète SELECT choisit la catégorie de membre pour envoyer le mail sinon juste l'INSERT sera exécuté.
if($_POST['submit']) { $publier = $_POST['publier']=='true' ? true : false; switch($_POST['haction']) { case 'new': $requete = "INSERT INTO ".TBMANIF." (lieu,dmanif,event,idhorai,idindem,publier,descmanif,inscrip) VALUES ('$lieu','$dmanif','$event','$idhorai','$idindem','$publier','$descmanif','$inscrip')"; $typenr = "enregistré"; $reqaj = $requete; $resultat = ExecRequete($requete,$connexion); if(!$publier) { $requete = "SELECT nom,prenom,email,annee FROM ".TBADH." LEFT JOIN ".TBPERS." ON ".TBPERS.".idpers = ".TBADH.".idpers WHERE annee = '$aadh' AND ".TBADH.".idclas = 4"; $resultat = ExecRequete($requete,$connexion); while ($r = mysql_fetch_object($resultat)) { ICI SCRIPT POUR ENVOIE DE MAIL } }
Faut vraiment que tu te mettes à appliquer les conseils qui sont donnés ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et puis... tu utilises l'ancienne extension mysql qui est OBSOLETE.
Il faut que tu passes à mysqli ou pdo...
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Et puis... tu utilises l'ancienne extension mysql qui est OBSOLETE.
Il faut que tu passes à mysqli ou pdo...
Bonjour,
Merci en ce qui concerne mon soucis cela marche bien.
Pour vos conseils je les suis petit à petit. En fait j'ai toute une partie administration avec un .htaccess et .htpasswd qui est fonctionnel mais obselete j'en suis conscient et j'ai le site de notre association qui est construit en PDO avec requète préparée. Je suis en train d'y regarder mais j'avais fait un gros travail pour la partie admin que migrer vers les nouvelles méthodes me font peur par pour le travail mais étant donné que dans la partie administration l y a souvent des mises à jour à faire alors je ne sais pas trop comment il va falloir aborder le problème car je vais rester avec la partie admin sans aucune mise à jour pendant un certain temps, mais bon j'y réfléchis...
Merci encore
Merci en ce qui concerne mon soucis cela marche bien.
Pour vos conseils je les suis petit à petit. En fait j'ai toute une partie administration avec un .htaccess et .htpasswd qui est fonctionnel mais obselete j'en suis conscient et j'ai le site de notre association qui est construit en PDO avec requète préparée. Je suis en train d'y regarder mais j'avais fait un gros travail pour la partie admin que migrer vers les nouvelles méthodes me font peur par pour le travail mais étant donné que dans la partie administration l y a souvent des mises à jour à faire alors je ne sais pas trop comment il va falloir aborder le problème car je vais rester avec la partie admin sans aucune mise à jour pendant un certain temps, mais bon j'y réfléchis...
Merci encore