Vérifier couple en BDD
Résolu
LaChaux78
Messages postés
583
Date d'inscription
Statut
Membre
Dernière intervention
-
LaChaux78 Messages postés 583 Date d'inscription Statut Membre Dernière intervention -
LaChaux78 Messages postés 583 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une table avec idpers et idmanif.
Lorsque j'insére la présence des membres pour une manifestation donnée je voudrais pouvoir vérifier si le couple idpers et idmanif existe déjà.
Actuellement l'INSERT ne se fait pas. Je ne vois pas l'erreur, par contre si je supprime ma requète SELECT de la table cdc_repondre qui vérifie si l'adhérent existe tout fonctionne. Si vous pouvez m'aider s'ils vous plait.
voici mes chekbox pour la sélection des membres
J'ai une table avec idpers et idmanif.
Lorsque j'insére la présence des membres pour une manifestation donnée je voudrais pouvoir vérifier si le couple idpers et idmanif existe déjà.
Actuellement l'INSERT ne se fait pas. Je ne vois pas l'erreur, par contre si je supprime ma requète SELECT de la table cdc_repondre qui vérifie si l'adhérent existe tout fonctionne. Si vous pouvez m'aider s'ils vous plait.
if($submit) { switch($haction) { case 'new': if ($effectif) { $sql = "SELECT idpers, idmanif FROM cdc_repondre WHERE cdc_repondre.idpers = :idpers AND cdc_repondre.idmanif = :idmanif"; $datas = array('idpers' => $idpers, 'idmanif' => $idmanif); $result = executeQuery($sql,$datas); $nb = $result->rowCount(); if($nb == 0) { if (is_array($effectif)) { foreach($effectif as $idpers) { // Construction de la requete d'ajout $sql = "INSERT INTO cdc_repondre (idrepon, idpers, idmanif, reponse) VALUES (:idrepon, :idpers, :idmanif, :reponse)"; $datas = array('idrepon' => $idrepon, 'idpers' => $idpers, 'idmanif' => $idmanif, 'reponse' => $reponse); $result = executeQuery($sql,$datas); $typenr = "enregistré"; $reqaj = $sql; } } $sql = "SELECT idmanif,dmanif FROM cdc_manifestations WHERE idmanif = :idmanif"; $datas = array('idmanif' => $idmanif); $result = executeQuery($sql,$datas); $donnees = $result->fetch(); $success = "<span class='success'>Un musicien pour l'effectif de la sortie du - ".dateFR("$donnees->dmanif")." - a été $typenr.</span>"; } else { $erreur = "<span class='erreur'>Cet Adhérent existe déjà pour cette sortie</span>"; } } else $erreur = '<span class="erreur">Tu n\'as pas sélectionné de membres !</span>'; break; } }
voici mes chekbox pour la sélection des membres
echo '<input type="checkbox" name="effectif[]" value="'.$donnees->idpers.'"> '.$donnees->nom.' '.$donnees->prenom.'<br/>'; $nbp++;
A voir également:
- Vérifier couple en BDD
- Verifier compatibilite windows 11 - Guide
- Verifier un lien - Guide
- Vérifier si mot de passe piraté - Guide
- Vérifier si une phrase est correcte - Accueil - Google
- Vérifier température pc - Guide
11 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, si je comprends bien, avec le code que tu nous montres, la ligne 23 n'est pas exécutée.
et tout fonctionne bien avec un code différent, que tu ne nous montres pas.
ai-je bien compris?
par ailleurs, tu ne nous montres qu'une partie de ton code, difficile de comprendre ce que tu veux faire.
je me demande, tout de même, ce que contient $idpers en ligne 12.
je suis surpris que tu ne vérifies pas le résultat de la ligne 23.
et tout fonctionne bien avec un code différent, que tu ne nous montres pas.
ai-je bien compris?
par ailleurs, tu ne nous montres qu'une partie de ton code, difficile de comprendre ce que tu veux faire.
je me demande, tout de même, ce que contient $idpers en ligne 12.
je suis surpris que tu ne vérifies pas le résultat de la ligne 23.
Voici mon script qui fonctionne bien.
Donc il me reste à faire la requète qui me permet de vérifier si le couple idpers et idmanif existe.
si le couple existe message d'eereur
si le couple n'existe pas INSERT
if($submit) { switch($haction) { case 'new': if ($effectif) { if (is_array($effectif)) { foreach($effectif as $idpers) { // Construction de la requete d'ajout $sql = "INSERT INTO cdc_repondre (idrepon, idpers, idmanif, reponse) VALUES (:idrepon, :idpers, :idmanif, :reponse)"; $datas = array('idrepon' => $idrepon, 'idpers' => $idpers, 'idmanif' => $idmanif, 'reponse' => $reponse); $result = executeQuery($sql,$datas); $typenr = "enregistré"; $reqaj = $sql; } } $sql = "SELECT idmanif,dmanif FROM cdc_manifestations WHERE idmanif = :idmanif"; $datas = array('idmanif' => $idmanif); $result = executeQuery($sql,$datas); $donnees = $result->fetch(); $success = "<span class='success'>Un musicien pour l'effectif de la sortie du - ".dateFR("$donnees->dmanif")." - a été $typenr.</span>"; } else $erreur = '<span class="erreur">Tu n\'as pas sélectionné de membres !</span>'; break; } }
Donc il me reste à faire la requète qui me permet de vérifier si le couple idpers et idmanif existe.
si le couple existe message d'eereur
si le couple n'existe pas INSERT
Le contenu de $idpers c'est le nom et prenom de la personne que je sélectionne via mes checkboxs.
Je n'ai pas compris lorsque tu me dit de vérifier en ligne 13 de mon second post. parce que j'ai bien mon retour comme quoi l'insert c'est bien déroulé.
Je n'ai pas compris lorsque tu me dit de vérifier en ligne 13 de mon second post. parce que j'ai bien mon retour comme quoi l'insert c'est bien déroulé.
c'est cette ligne qui me dit que tout cest bien déroulé.
je ne comprends pas ta question, excuse moi!
"à propos de $idpers: à quelle ligne est-ce mis à jour avant la ligne 12? "
$success = "<span class='success'>Un musicien pour l'effectif de la sortie du - ".dateFR("$donnees->dmanif")." - a été $typenr.</span>";
je ne comprends pas ta question, excuse moi!
"à propos de $idpers: à quelle ligne est-ce mis à jour avant la ligne 12? "
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Une fois de plus ....est-ce que ton souci concerne la requête SQL où le code PHP ?
Si c'est au niveau du code php...il aurait fallu poster dans le forum php...!!
Ensuite..tu utilises pdo... as tu activé l'affichage des erreurs PHP et pdo ?
As tu essayé de faire un print_r de tes variables pour t'assurer qu'elles sont correctement remplies ?
Une fois de plus ....est-ce que ton souci concerne la requête SQL où le code PHP ?
Si c'est au niveau du code php...il aurait fallu poster dans le forum php...!!
Ensuite..tu utilises pdo... as tu activé l'affichage des erreurs PHP et pdo ?
As tu essayé de faire un print_r de tes variables pour t'assurer qu'elles sont correctement remplies ?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
cette ligne qui te dit que tout s'est bien déroulé est basée sur la valeur de $typenr. en ligne 14, tu supposes que tout s'est bien passé, alors que tu n'as pas vérifié le résultat de la ligne 13.
.
tu penses que le contenu de $idpers c'est le nom et prenom de la personne que l'utilisateur a sélectionné via ses checkboxs. dans quelle partie du code est-ce que le nom et le prénom sont mis dans idpers?
.
tu penses que le contenu de $idpers c'est le nom et prenom de la personne que l'utilisateur a sélectionné via ses checkboxs. dans quelle partie du code est-ce que le nom et le prénom sont mis dans idpers?
oui j'utilise pdo et j'ai activé l'affichage d'erreurs.
alors voilà je pense que cela viens de ma requète lorsque je fait un print_r mon résultat est
mon INSERT à bien fonctionné mais j'avais déjà une entrée dans ma BDD qui correspond à celle-ci à savoir:
idmanif => 612
mon array => 2
j'aurai du avoir mon message "erreur" afin d'éviter d'avoir ce couple de doublon.
alors voilà je pense que cela viens de ma requète lorsque je fait un print_r mon résultat est
Array ( [idmanif] => 612 [reponse] => absent [haction] => new [effectif] => Array ( [0] => 2 ) [submit] => Enregistrer )
mon INSERT à bien fonctionné mais j'avais déjà une entrée dans ma BDD qui correspond à celle-ci à savoir:
idmanif => 612
mon array => 2
j'aurai du avoir mon message "erreur" afin d'éviter d'avoir ce couple de doublon.
Tu dis avoir un souci au niveau de ta requête...et pourtant tu ecris
Une fois de plus...ta question est si bien expliquée....
A moins qu'il ne s'agisse de la requête SELECT ?
As tu, au moins, testé tes requetes DIRECTEMENT dans ta bdd ?
Histoire de voir si le souci vient réellement de tes requetes...ou de ton code php ?
Je rappelle également que la fonction rowCount ne s'utilise jamais pour une requête select.
mon INSERT à bien fonctionné
Une fois de plus...ta question est si bien expliquée....
A moins qu'il ne s'agisse de la requête SELECT ?
As tu, au moins, testé tes requetes DIRECTEMENT dans ta bdd ?
Histoire de voir si le souci vient réellement de tes requetes...ou de ton code php ?
Je rappelle également que la fonction rowCount ne s'utilise jamais pour une requête select.
j'ai testé ma requète dans ma BDD
elle me retourne bien 1
SELECT COUNT(*) AS verif FROM cdc_repondre WHERE cdc_repondre.idpers = 2 AND cdc_repondre.idmanif = 612
elle me retourne bien 1
oui au niveau sql ça àl'air d'être bon alors je pense peut-être que c'est la condition qui pose problème! car l'INSERT se fait et que la requète SELECT est bonne. Je devrais entrer dans le "else".
$sql = "SELECT COUNT(*) AS verif FROM cdc_repondre WHERE cdc_repondre.idpers = :idpers AND cdc_repondre.idmanif = :idmanif"; $datas = array('idpers' => $idpers, 'idmanif' => $idmanif); $result = executeQuery($sql,$datas); $donnees = $result->fetch(); if($donnees->verif == 0) { if (is_array($effectif)) { foreach($effectif as $idpers) { // Construction de la requete d'ajout $sql = "INSERT INTO cdc_repondre (idrepon, idpers, idmanif, reponse) VALUES (:idrepon, :idpers, :idmanif, :reponse)"; $datas = array('idrepon' => $idrepon, 'idpers' => $idpers, 'idmanif' => $idmanif, 'reponse' => $reponse); $result = executeQuery($sql,$datas); $typenr = "enregistré"; $reqaj = $sql; } } $sql = "SELECT idmanif,dmanif FROM cdc_manifestations WHERE idmanif = :idmanif"; $datas = array('idmanif' => $idmanif); $result = executeQuery($sql,$datas); $donnees = $result->fetch(); $success = "<span class='success'>Un musicien pour l'effectif de la sortie du - ".dateFR("$donnees->dmanif")." - a été $typenr.</span>"; echo "<pre>"; print_r($_POST); echo "</pre>"; } else { $erreur = "<span class='erreur'>Cet Adhérent existe déjà pour cette sortie</span>"; }
Bonjour,
Le contenu de la variable $donnees->verif me retourne 0 !
Le contenu de la variable $donnees->verif me retourne 0 !
Bonjour,
Je débarque un peu dans la résolution du problème, mais je constate dans ton script que tu fais ton test SELECT sur un $idpers qui n'est pas le même que dans tes requêtes INSERT... L'un est une variable unique définie on ne sait comment, l'autre est issu d'un tableau POST...
Tu es sûr que ces requêtes sont cohérentes ?
Xavier
Je débarque un peu dans la résolution du problème, mais je constate dans ton script que tu fais ton test SELECT sur un $idpers qui n'est pas le même que dans tes requêtes INSERT... L'un est une variable unique définie on ne sait comment, l'autre est issu d'un tableau POST...
Tu es sûr que ces requêtes sont cohérentes ?
Xavier