Page 1 sur 2

Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 09:53
par Stu76
Bonjour à tous,

Avant tout merci de l'attention que vous m'accordez.

Voici mon problème, j'ai un formulaire dans lequel des étudiants doivent s'inscrire. Lors de l'envoi de celui-ci et après un contrôle des champs, je veux inscrire l'étudiant dans une table (INSERT), vu que le nombre de places par cours est limité, je dois incrémenter un compteur et faire un update dans une autre table.

Les requêtes fonctionnent correctement séparément, mais ensemble cela ne fonctionne pas et je ne comprends pas pourquoi.
Dans le cas présent, seul l'UPDATE fonctionne.

Petite précision, je suis débutant en programmation :cry:

Si quelqu'un pouvait me mettre sur la voie, se serait super-sympa, merciiiiiii
if($isSuccess){
            $comp++;
            $db =Database::connect();
            $insertionSt = $db->prepare("INSERT INTO students (last_name, first_name, cours) values(?, ?, ?)");
            $insertionSt->execute(array($lastName, $firstName,  $id));
            $insc=true;
            if($insc){
                $insertC = $db->prepare("UPDATE classes set nbrstcp = ? where id = ?");
                $insertC->execute(array($comp, $id));
                Database::disconnect();
                header("location: confirm.php");
                $cours=' ';
            }
           
    }

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 11:30
par or 1
la requête insert fonctionne dans phpmyadmin ?

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 11:43
par Stu76
Bonjour, oui elle fonctionnait correctement avant que je n'ajoute la seconde requête. Si je met l'update en commentaire elle fonctionne, pourquoi elle n'est pas conventionnelle ?

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 11:57
par @rthur
Bonjour,

Ma préconisation c'est de commencer (si ce n'est pas déjà fait) par afficher les erreurs PDO en utilisant ERRMODE_WARNING :
https://www.php.net/manual/fr/pdo.error-handling.php

Puis mets en commentaire le header("location..."), ça évitera la redirection et te permettra de voir si il y a des erreurs.

2 petites recommandations :
- Ta ligne $cours=' '; ne sert à rien puisque située après ta demande de redirection.
- Il faut toujours mettre un exit; après un header("location..."), puisque tu demandes une redirection, rien d'autres ne doit être exécuté ensuite. Ça évite les comportements bizarres de certains navigateurs.

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:09
par Stu76
Bon, je viens de refaire les tests et la requête INSERT ne fonctionne plus, même dans phpmyadmin, visiblement j'ai modifié quelque chose qu'il ne fallait pas. J'ai la tête dans le guidon et je vois pas où est l'erreur. À l'aide :-?

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:17
par or 1
sans connaitre le message d'erreur indiqué par phpmyadmin, ni la structure de la table, impossible d'aider.

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:21
par Stu76
Il me dit ceci #1064 - Erreur de syntaxe

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:24
par or 1
qu'est-ce qui a été soumis ?

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:29
par Stu76
INSERT INTO `students`(`last_name`, `first_name`, `cours`) VALUES (coco,zaza,4)

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:31
par Stu76
La je ne comprends plus rien :-(

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:33
par or 1
qu'il faut comparer avec la requete générée par phpmyadmin en utilisant le formulaire d'ajout d'un enregistrement dans une table.

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:40
par Stu76
C'est ce que j'ai fait et c'est le message que j'ai affiché ici. Le problème c'est que je n'ai pas de message d'erreur qui s'affiche dans mon code. Je vais essayer de voir s'il y a une erreur PDO et je reviens vers vous ;-)
En tout cas, merci pour aide.

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:44
par or 1
non, après avoir cliquer sur "insérer", phpmyadmin ne génère pas une requête invalide de ce genre :
INSERT INTO `students`(`last_name`, `first_name`, `cours`) VALUES (coco,zaza,4)

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 12:58
par Stu76
malheureusement chez moi oui, il possible d'insérer une image sur le forum ?

Re: Problème avec deux enregistrements simultané dans une base de données

Posté : 30 nov. 2020, 14:18
par Stu76
Comme convenu, je reviens vers vous après une série de test sans messages d'erreur, j'ai décidé de réinstaller mon serveur ou plutôt de supprimer WAMP et de réinstaller XAMP. Comme par magie tout fonctionne, sauf l'UPDATE dans la deuxième table. Mais je pense avoir identifier une erreur. Je ne manquerai pas de revenir vers vous avec la solution.

Si quelqu'un à une piste je suis bien entendu preneur ;-)

Encore merci pour le temps que vous m'avez consacré.