[PHPMyAdmin] BDD : Interpréter commandes dans l'ordre
Résolu/Fermé
A voir également:
- [PHPMyAdmin] BDD : Interpréter commandes dans l'ordre
- Localhost/phpmyadmin ✓ - Forum PHP
- Clé étrangère phpmyadmin ✓ - Forum MySQL
- Changer mot de passe phpmyadmin - Forum PHP
- Impossible de se connecter à PHPmyAdmin en local - Forum MySQL
- Localhost/phpmyadmin/ - Forum Bases de données
2 réponses
jordane45
Messages postés
38467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 avril 2025
4 741
23 août 2017 à 11:56
23 août 2017 à 11:56
Bonjour,
Dans ton titre tu parles de phpmyadmin ... phpmyadmin est juste une application (une interface) qui te permet de manipuler ta BDD.
BDD qui, au passage, est Mysql (j'ai donc déplacé ta question dans le forum mysql).
Et ensuite... tu nous expliques que tes requêtes sont effectuées via un script PHP ..... donc... pas directement dans ta BDD .... (donc aucun rapport avec phpmyadmin).
Bref... pour finir je pense que le souci vient du fonctionnement de ton script php ... c'est donc CE SCRIPT LA qu'il faut nous montrer et nous expliquer EN DETAIL ce qu'il est sensé faire.
(A ce moment là.. je déplacerai la question dans le forum PHP )
NB: Tu parles de tocken et de $_POST ... pour éviter les réinsertions multiples liés à l'utilisation du bouton F5 ... il existe des solutions en utilisant les variables de SESSION et/ou encore mieux .... en utilisant l' AJAX.
Dans ton titre tu parles de phpmyadmin ... phpmyadmin est juste une application (une interface) qui te permet de manipuler ta BDD.
BDD qui, au passage, est Mysql (j'ai donc déplacé ta question dans le forum mysql).
Et ensuite... tu nous expliques que tes requêtes sont effectuées via un script PHP ..... donc... pas directement dans ta BDD .... (donc aucun rapport avec phpmyadmin).
Bref... pour finir je pense que le souci vient du fonctionnement de ton script php ... c'est donc CE SCRIPT LA qu'il faut nous montrer et nous expliquer EN DETAIL ce qu'il est sensé faire.
(A ce moment là.. je déplacerai la question dans le forum PHP )
NB: Tu parles de tocken et de $_POST ... pour éviter les réinsertions multiples liés à l'utilisation du bouton F5 ... il existe des solutions en utilisant les variables de SESSION et/ou encore mieux .... en utilisant l' AJAX.
Salut Jordane, merci pour ta réponse.
Je parlais de PHPMyAdmin, car effectivement, je ne pensais pas que mon script PHP serait mauvais, je pensais que c'était une histoire de config de BDD, et je demandais comment faire sous cet interface.
J'utilise effectivement l'AJAX, pour que mon enregistrement se fasse en tache de fond. Je souhaite mettre a la file mes requêtes SQL, que le bloc "DELETE INPUT INPUT INPUT" s'effectue toujours dans cet ordre là.
Tous les scripts fonctionne, je t'épargne donc les try-catch, les bindValue, les $_POST etc..
Je vais résumer les script PHP :
main.php :
delete_info_token.php :
simul_enregistre.php:
C'est cette partie là qui est spammée quand on rafraîchi (seuls scripts de mon programme comportant des DELETE et des INSERT).
Je parlais de PHPMyAdmin, car effectivement, je ne pensais pas que mon script PHP serait mauvais, je pensais que c'était une histoire de config de BDD, et je demandais comment faire sous cet interface.
J'utilise effectivement l'AJAX, pour que mon enregistrement se fasse en tache de fond. Je souhaite mettre a la file mes requêtes SQL, que le bloc "DELETE INPUT INPUT INPUT" s'effectue toujours dans cet ordre là.
Tous les scripts fonctionne, je t'épargne donc les try-catch, les bindValue, les $_POST etc..
Je vais résumer les script PHP :
main.php :
$token = "ABCDEF"; $.post('delete_info_token.php',{token: token_actuel},function(retour){}); $.post('simul_enregistre.php',{ token: token_actuel, mach_id: tab_machine[key]["mach_id"], left: $('#'+key).css("left"), top: $('#'+key).css("top"), },function(retour){//console.log(retour);});
delete_info_token.php :
$cnx = new PDO etc..; $req = $cnx->prepare("DELETE FROM machine WHERE token=:token;"); $req-> bindValue(':token',$token); $req-> execute();
simul_enregistre.php:
$cnx = new PDO etc..; $req = $cnx->prepare("INSERT INTO machine VALUES (DEFAULT,:token,:mach_id,:left,:top);"); //[...] ICI tous les bindValue. $req-> execute();
C'est cette partie là qui est spammée quand on rafraîchi (seuls scripts de mon programme comportant des DELETE et des INSERT).
jordane45
Messages postés
38467
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 avril 2025
4 741
23 août 2017 à 13:22
23 août 2017 à 13:22
Pour l'ajax je te conseille d’utiliser la syntaxe suivante afin de mieux voir les éventuelles erreurs :
Tu verras qu'il y a un paramètre async que tu peux avoir à true ou false.
Autrement dit .. synchrone ou asynchrone ...
Je pense que ton souci vient de là.
Au passage ...
1 - Place le code de connexion à ta bdd dans un fichier à part que tu n'auras qu'à inclure lorsque tu en as besoin au lieu de le répéter dans chacun de tes codes
2 - Active la gestion des erreurs PDO et place tes requêtes ( chaque requête ! ) dans un bloc Try/Catch
Voir ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
$.ajax({ type: "POST", url: urldufichierAjxphp, data: lesdata, async: false, dataType: "json", success: function(reponse){ // ici le code en cas de succès }, error:function(jqXHR, textStatus){ // ici le code en cas d'erreur } } });
Tu verras qu'il y a un paramètre async que tu peux avoir à true ou false.
Autrement dit .. synchrone ou asynchrone ...
Je pense que ton souci vient de là.
Au passage ...
1 - Place le code de connexion à ta bdd dans un fichier à part que tu n'auras qu'à inclure lorsque tu en as besoin au lieu de le répéter dans chacun de tes codes
2 - Active la gestion des erreurs PDO et place tes requêtes ( chaque requête ! ) dans un bloc Try/Catch
Voir ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Je viens de prendre ta syntaxe, et avec async:false, ça fonctionne parfaitement bien !
Merci beaucoup, je ne connaissais pas du tout, c'est très pratique !
Le soucis venait effectivement de là !
1. C'est fait, je ne voulais pas alourdir le code sur le forum avec des include, jai un fichier cnx.php
2. C'est fait aussi, toutes mes requêtes sont en try catch, et j'utilise :
En tout cas merci beaucoup pour ton aide, j'ai appris un truc super utile et mon projet a bien avancé !
Merci beaucoup, je ne connaissais pas du tout, c'est très pratique !
Le soucis venait effectivement de là !
1. C'est fait, je ne voulais pas alourdir le code sur le forum avec des include, jai un fichier cnx.php
2. C'est fait aussi, toutes mes requêtes sont en try catch, et j'utilise :
catch(PDOExeption $e){/*[...]*/}
En tout cas merci beaucoup pour ton aide, j'ai appris un truc super utile et mon projet a bien avancé !