Requête qui s'exécute alors qu'elle ne devrait pas
Fermé
-NoeGo-
Messages postés
52
Date d'inscription
mercredi 28 décembre 2016
Statut
Membre
Dernière intervention
7 mai 2021
-
12 mai 2020 à 23:50
-NoeGo- Messages postés 52 Date d'inscription mercredi 28 décembre 2016 Statut Membre Dernière intervention 7 mai 2021 - 13 mai 2020 à 00:35
-NoeGo- Messages postés 52 Date d'inscription mercredi 28 décembre 2016 Statut Membre Dernière intervention 7 mai 2021 - 13 mai 2020 à 00:35
A voir également:
- Requête qui s'exécute alors qu'elle ne devrait pas
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Roxane cherche des informations pour écrire un rapport sur la jeunesse. avec un moteur de recherche généraliste, elle souhaite limiter les résultats de sa recherche aux pages de l’organisation internationale du travail. quelle requête doit-elle taper dans le champ de recherche ? - Forum Réseaux sociaux
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ? ✓ - Forum Loisirs / Divertissements
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de pomme mais pas de pomme de terre ? - Forum Thunderbird
4 réponses
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
13 mai 2020 à 00:02
13 mai 2020 à 00:02
Bonjour,
Bon.. quand je vois qu'on stocke 40 questions sur une seule ligne de bdd .... je pleure un bon coup ...
Clairement... ce n'est pas le fonctionnement optimal d'une BDD relationnelle ...
Typiquement.. si demain tu veux ajouter de nouvelles questions... tu feras quoi ?? tu vas modifier la structure de ta table pour ajouter de nouvelles colonnes ??
Sache que, sauf dans de rares cas..., on défini la structure de sa BDD et ensuite on n'y touche plus.
Dans ton cas, j'aurais simplement créé une seconde table avec les champs (id , id_evaluation , id_question, valeur )
Mais bon.. tous les débutants font ce genre de bêtise.
Bref, cette parenthèse étant faite ... pour que tu parviennes à déterminer où se trouve le souci ( si il y en a un... ) c'est d'ajouter un peu de debug...
Par exemple
Ensuite, le premier truc à faire, c'est de récupérer ce que t'affiche ton
puis de tester DIRECTEMENT la requête dans ta bdd ( via phpmyadmin par exemple) pour vérifier ce qu'elle te retourne...
Au passage, je t'invite à lire (et à appliquer) le contenu de ce lien :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Bon.. quand je vois qu'on stocke 40 questions sur une seule ligne de bdd .... je pleure un bon coup ...
Clairement... ce n'est pas le fonctionnement optimal d'une BDD relationnelle ...
Typiquement.. si demain tu veux ajouter de nouvelles questions... tu feras quoi ?? tu vas modifier la structure de ta table pour ajouter de nouvelles colonnes ??
Sache que, sauf dans de rares cas..., on défini la structure de sa BDD et ensuite on n'y touche plus.
Dans ton cas, j'aurais simplement créé une seconde table avec les champs (id , id_evaluation , id_question, valeur )
Mais bon.. tous les débutants font ce genre de bêtise.
Bref, cette parenthèse étant faite ... pour que tu parviennes à déterminer où se trouve le souci ( si il y en a un... ) c'est d'ajouter un peu de debug...
Par exemple
<?php $sql = "SELECT nom FROM evaluation WHERE nom='".$_SESSION['nom']."'"; echo "<br> La requête est : <br> " . $sql; $requete = $connexion->query($sql) or die(mysqli_error($connexion)); $nombre = $requete->num_rows; echo "<br>Nombre :" . $nombre; if($nombre >= 1) { echo "<br> Nombre >=1 "; ?> html pour dire que le questionnaire a déjà été renseigné et donc n a pas été enregistré <?php } else { echo "<br> Nombre= 0 "; $connexion->query("INSERT INTO evaluation VALUES(NULL , '".$_SESSION['nom']."' , '".$_SESSION['score']."' ,'".$_SESSION['question1']."' , '".$_SESSION['question2']."' , '".$_SESSION['question3']."' , '".$_SESSION['question4']."' , '".$_SESSION['question5']."' , '".$_SESSION['question6']."' , '".$_SESSION['question7']."' , '".$_SESSION['question8']."' , '".$_SESSION['question9']."' , '".$_SESSION['question10']."' , '".$_SESSION['question11']."' , '".$_SESSION['question12']."' , '".$_SESSION['question13']."' , '".$_SESSION['question14']."' , '".$_SESSION['question15']."' , '".$_SESSION['question16']."' , '".$_SESSION['question17']."' , '".$_SESSION['question18']."' , '".$_SESSION['question19']."' , '".$_SESSION['question20']."' , '".$_SESSION['question21']."' , '".$_SESSION['question22']."' , '".$_SESSION['question23']."' , '".$_SESSION['question24']."' , '".$_SESSION['question25']."' , '".$_SESSION['question26']."' , '".$_SESSION['question27']."' , '".$_SESSION['question28']."' , '".$_SESSION['question29']."' , '".$_SESSION['question30']."' , '".$_SESSION['question31']."' , '".$_SESSION['question32']."' , '".$_SESSION['question33']."' , '".$_SESSION['question34']."' , '".$_SESSION['question35']."' , '".$_SESSION['question36']."' , '".$_SESSION['question37']."' , '".$_SESSION['question38']."' , '".$_SESSION['question39']."' , '".$_SESSION['question40']."' , '".time()."' , '".$_SERVER['REMOTE_ADDR']."')") or die(mysqli_error($connexion)); ?> html pour dire que le questionnaire a bien été enregistré <?php } ?>
Ensuite, le premier truc à faire, c'est de récupérer ce que t'affiche ton
echo "<br> La requête est : <br> " . $sql;
puis de tester DIRECTEMENT la requête dans ta bdd ( via phpmyadmin par exemple) pour vérifier ce qu'elle te retourne...
Au passage, je t'invite à lire (et à appliquer) le contenu de ce lien :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
-NoeGo-
Messages postés
52
Date d'inscription
mercredi 28 décembre 2016
Statut
Membre
Dernière intervention
7 mai 2021
11
13 mai 2020 à 00:17
13 mai 2020 à 00:17
Bonjour Jordane,
Merci pour ton aide.
Oui tu as tout à fait raison 40 questions sur la même ligne c'est pas la meilleure idée du monde.
En fait, je fais ce questionnaire pour évaluer mes élèves dans le cadre du confinement, la base ne bougera pas, c'est pour vendredi et ensuite ma table évaluation sera supprimée. Donc j'ai fait au plus vite.
Ensuite, j'avais déjà ces affichages de debug, que j'ai supprimé pour mon post afin de simplifier la lecture du code.
Et tous les affichages sont normaux, je ne vois pas de bizarrerie.
Mon code html affiche que le nom est déjà connu mais pour autant la ligne est ajoutée...
Toutefois tout à l'heure, je n'ai pas eu ce problème sur 4 ou 5 enregistrements, mais là le problème revient... Je ne comprend rien...
Merci pour ton aide.
Oui tu as tout à fait raison 40 questions sur la même ligne c'est pas la meilleure idée du monde.
En fait, je fais ce questionnaire pour évaluer mes élèves dans le cadre du confinement, la base ne bougera pas, c'est pour vendredi et ensuite ma table évaluation sera supprimée. Donc j'ai fait au plus vite.
Ensuite, j'avais déjà ces affichages de debug, que j'ai supprimé pour mon post afin de simplifier la lecture du code.
Et tous les affichages sont normaux, je ne vois pas de bizarrerie.
Mon code html affiche que le nom est déjà connu mais pour autant la ligne est ajoutée...
Toutefois tout à l'heure, je n'ai pas eu ce problème sur 4 ou 5 enregistrements, mais là le problème revient... Je ne comprend rien...
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 737
13 mai 2020 à 00:20
13 mai 2020 à 00:20
Il y a sûrement autre chose dans ton code...
Il faudrait nous le montrer entièrement...
Après... faire pleins de tests en laissant les debug jusqu'à obtenir à nouveau le souci serait pas mal;
Et surtout.. nous montrer le résultat lorsque tu rencontres le souci en question.
Il faudrait nous le montrer entièrement...
Après... faire pleins de tests en laissant les debug jusqu'à obtenir à nouveau le souci serait pas mal;
Et surtout.. nous montrer le résultat lorsque tu rencontres le souci en question.
-NoeGo-
Messages postés
52
Date d'inscription
mercredi 28 décembre 2016
Statut
Membre
Dernière intervention
7 mai 2021
11
13 mai 2020 à 00:29
13 mai 2020 à 00:29
Voici le code complet de cette partie.
Je passe les question par la méthode GET quand j'arrive à la 41ème, c'est fini :
Je passe les question par la méthode GET quand j'arrive à la 41ème, c'est fini :
else if($_GET['question']==41) { if(!isset($_SESSION['question40'])) { $_SESSION['question40']=$_POST['question']; if($_POST['question']=='reponse5') { $_SESSION['score']= $_SESSION['score']+0.5; } } else { echo 'La réponse à la question précédente avait déjà été enregistrée. Votre nouvelle réponse n\'a donc pas été prise en compte.'; } $sql = "SELECT nom FROM evaluation WHERE nom='".$_SESSION['nom']."'"; echo "<br> La requête est : <br> " . $sql; $requete = $connexion->query($sql) or die(mysqli_error($connexion)); $nombre = $requete->num_rows; echo "<br>Nombre :" . $nombre; if($nombre >= 1) { echo "<br> Nombre >=1 "; echo $nombre;?> <h2 class="text-black mt0">Fin du questionnaire</h2> Vous aviez déjà rempli le questionnaire.<br/> Celui-ci n a pas été enregistré. <?php } else { echo "<br> Nombre= 0 "; $connexion->query("INSERT INTO evaluation VALUES(NULL , '".$_SESSION['nom']."' , '".$_SESSION['score']."' ,'".$_SESSION['question1']."' , '".$_SESSION['question2']."' , '".$_SESSION['question3']."' , '".$_SESSION['question4']."' , '".$_SESSION['question5']."' , '".$_SESSION['question6']."' , '".$_SESSION['question7']."' , '".$_SESSION['question8']."' , '".$_SESSION['question9']."' , '".$_SESSION['question10']."' , '".$_SESSION['question11']."' , '".$_SESSION['question12']."' , '".$_SESSION['question13']."' , '".$_SESSION['question14']."' , '".$_SESSION['question15']."' , '".$_SESSION['question16']."' , '".$_SESSION['question17']."' , '".$_SESSION['question18']."' , '".$_SESSION['question19']."' , '".$_SESSION['question20']."' , '".$_SESSION['question21']."' , '".$_SESSION['question22']."' , '".$_SESSION['question23']."' , '".$_SESSION['question24']."' , '".$_SESSION['question25']."' , '".$_SESSION['question26']."' , '".$_SESSION['question27']."' , '".$_SESSION['question28']."' , '".$_SESSION['question29']."' , '".$_SESSION['question30']."' , '".$_SESSION['question31']."' , '".$_SESSION['question32']."' , '".$_SESSION['question33']."' , '".$_SESSION['question34']."' , '".$_SESSION['question35']."' , '".$_SESSION['question36']."' , '".$_SESSION['question37']."' , '".$_SESSION['question38']."' , '".$_SESSION['question39']."' , '".$_SESSION['question40']."' , '".time()."' , '".$_SERVER['REMOTE_ADDR']."')") or die(mysqli_error($connexion)); ?> <h2 class="text-black mt0">Fin du questionnaire</h2> Vous avez terminé votre évaluation.<br/> Voici votre note : <?php echo $_SESSION['score'];?>/20.<br/> <?php } }?>
-NoeGo-
Messages postés
52
Date d'inscription
mercredi 28 décembre 2016
Statut
Membre
Dernière intervention
7 mai 2021
11
13 mai 2020 à 00:35
13 mai 2020 à 00:35