Aucune erreur mais ça ne marche pas! je ne comprend pas :(
Résolu
Nouvelle_Informaticienne
Messages postés
173
Statut
Membre
-
Nouvelle_Informaticienne Messages postés 173 Statut Membre -
Nouvelle_Informaticienne Messages postés 173 Statut Membre -
Bonjour tt le monde,
Je me permets de vous demander un aide au niveau d'un problème dans l'insertion des donnes dans ma base donc j'ai une base de nom : intervenant contient les champs : nom_intervenant, prenom_intervenant, fonction_intervenant, type_intervenant en plus id(auto-incrément) et la date (automatique), je fais la saisie des 4 premier champs mais il me donne ni " insertion effectuée" ni "insertion échouée" il m'affiche une page vide sans erreur et sans résultat et ne fait jamais l'insertion dans la base de données ! s'il vous plait quelqu'un peut m'aider bah je suis sur que le problème est au niveau de l’exécution de la requête SQL mais je ne sais pas pourquoi ! j'ai réécris la requête 1000 fois afin de vérifier si il y a des erreurs au niveau d'orthographe mais toujours ça marche pas ! voici mon code d'insertion s'il vous plait : N.B je suis débutante
Je vous remercie par avance
Je me permets de vous demander un aide au niveau d'un problème dans l'insertion des donnes dans ma base donc j'ai une base de nom : intervenant contient les champs : nom_intervenant, prenom_intervenant, fonction_intervenant, type_intervenant en plus id(auto-incrément) et la date (automatique), je fais la saisie des 4 premier champs mais il me donne ni " insertion effectuée" ni "insertion échouée" il m'affiche une page vide sans erreur et sans résultat et ne fait jamais l'insertion dans la base de données ! s'il vous plait quelqu'un peut m'aider bah je suis sur que le problème est au niveau de l’exécution de la requête SQL mais je ne sais pas pourquoi ! j'ai réécris la requête 1000 fois afin de vérifier si il y a des erreurs au niveau d'orthographe mais toujours ça marche pas ! voici mon code d'insertion s'il vous plait : N.B je suis débutante
Je vous remercie par avance
<?php //connection au serveur $cnx = mysqli_connect( "localhost", "root", "","pst" ) ; //sélection de la base de données: $db = mysqli_select_db( $cnx,"pst" ) ; //récupération des valeurs des champs: //Acronyme du projet $nom = $_POST["nom"] ; //Titre du projet $prenom = $_POST["prenom"] ; //duree du projet $fonction = $_POST["fonction"] ; //Estimation du financement recherche $typeinter = $_POST["typeinter"] ; echo'<br><br><br><br><br><br>'; echo'<div>'; echo'<br>'; echo'<br>'; echo "les donnees sont :".$nom.' '.$prenom.' '.$fonction.' '.$typeinter.' '; //création de la requête SQL: $sql = "INSERT INTO intervenant (nom_intervenant,prenom_intervenant,fonction_intervenant,type_intervenant)VALUES('$nom','$prenom','$fonction','$typeinter')"; echo"avant execution requette!!"; //exécution de la requête SQL: $requete = mysqli_query($cnx,$sql) or die( mysql_error() ) ; echo"apres execution requette!!"; //affichage des résultats, pour savoir si l'insertion a marchée: if( $requete) { echo("<br> L insertion a ete correctement effectuee<br>") ; echo'<br>'; } else { echo("L'insertion à échouée") ; echo'<br>'; } echo'</div>'; ?>
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Aucune erreur mais ça ne marche pas! je ne comprend pas :(
- Erreur 0x80070643 - Accueil - Windows
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
3 réponses
les donnees sont :y y y yy
avant execution requette!!
La requete est : INSERT INTO intervenant (nom_intervenant,prenom_intervenant,fonction_intervenant,type_intervenant)VALUES('y','y','y','yy')apres execution requette!!
L insertion a ete correctement effectuee
je vous remercie
Essayes ça :
<?php //Fichier : cnxBDD.php //Connexion à la BDD : $host = "localhost"; $user = "root"; $password = ""; $database = "pst"; $db = mysqli_connect($host, $user, $password, $database); /* Vérification de la connexion */ if (!$db) { printf("Echec de la connexion : %s\n", mysqli_connect_error()); exit(); } ?>
<?php //Affichage des erreurs PHO error_reporting(E_ALL); //connexion à la BDD require_once "cnxBDD.php"; //récupération "propre" des valeurs des champs: //Acronyme du projet $nom = isset($_POST["nom"]) ? $_POST["nom"] : NULL ; $prenom = isset($_POST["prenom"]) ? $_POST["prenom"]: NULL ; $fonction = isset($_POST["fonction"]) ? $_POST["fonction"] : NULL ; $typeinter = isset($_POST["typeinter"]) ? $_POST["typeinter"] : NULL ; echo'<br><br><br><br><br><br>'; echo'<div>'; echo'<br>'; echo'<br>'; echo "les donnees sont :".$nom.' '.$prenom.' '.$fonction.' '.$typeinter.' '; //création de la requête SQL: $sql = "INSERT INTO intervenant (nom_intervenant,prenom_intervenant,fonction_intervenant,type_intervenant) VALUES('$nom','$prenom','$fonction','$typeinter')"; echo"avant execution requette!!"; //exécution de la requête SQL: $requete = mysqli_query($cnx,$sql) or die(mysqli_error($cnx) ) ; echo"apres execution requette!!"; //affichage des résultats, pour savoir si l'insertion a marchée: if( $requete) { echo("<br> L insertion a ete correctement effectuee<br>") ; echo'<br>'; } else { echo("L'insertion à échouée") ; echo'<br>'; } echo'</div>'; ?>
Je vous remercie d'abord , en suite meme si j'ai essayé le nouveau code il m'affiche meme page :
"les donnees sont :a a a avant execution requette!!"
il m affiche pas "apres execution de la requete " donc je crois il se bloque au niveau de la requete !! je ne sais pas depuis le matin j essai mais je ne trouve pas la source de l'erreur pour la corriger ! merci encore une fois
"les donnees sont :a a a avant execution requette!!"
il m affiche pas "apres execution de la requete " donc je crois il se bloque au niveau de la requete !! je ne sais pas depuis le matin j essai mais je ne trouve pas la source de l'erreur pour la corriger ! merci encore une fois
Commence par faire un ECHO de la requête
Puis testes la DIRECTEMENT dans ta BDD (via phpmyadmin par exemple).
Cela te permettra de savoir si le souci se situe au niveau de la requête ou non.
Ensuite, je viens de le voir ... si tu as utilisé mon code de connexion à la BDD .. j'ai mis la connexion dans $db ....
Sauf que dans les requêtes ... il y a $cnx ...
Donc remplace les $cnx par $db
$sql = "INSERT INTO intervenant (nom_intervenant,prenom_intervenant,fonction_intervenant,type_intervenant) VALUES('$nom','$prenom','$fonction','$typeinter')"; echo "<br> La requete est : ".$sql; echo"avant execution requette!!";
Puis testes la DIRECTEMENT dans ta BDD (via phpmyadmin par exemple).
Cela te permettra de savoir si le souci se situe au niveau de la requête ou non.
Ensuite, je viens de le voir ... si tu as utilisé mon code de connexion à la BDD .. j'ai mis la connexion dans $db ....
Sauf que dans les requêtes ... il y a $cnx ...
$requete = mysqli_query($cnx,$sql) or die(mysqli_error($cnx) ) ;
Donc remplace les $cnx par $db
Rien de spécial ????? ?
Alors que ça t'affiche une information IMPORTANTE !!!
En gros ... tu as un champ dans ta table que tu as défini comme devant être UNIQUE ... et tu essayes d'insérer une ligne qui cotient une valeur déjà existante dans ta table !
Voila ton erreur !!
Alors que ça t'affiche une information IMPORTANTE !!!
Duplicate entry '0' for key 'PRIMARY'
En gros ... tu as un champ dans ta table que tu as défini comme devant être UNIQUE ... et tu essayes d'insérer une ligne qui cotient une valeur déjà existante dans ta table !
Voila ton erreur !!
Bonjour,
essaye plutôt de déclarer ta connexion et la sélection de ta base de cette manière suivante.
Lors de la recuperation du formulaire essaye aussi plutôt les simples cotes à la place des doubles
Enfin Pour ton affichage des résultats si ca ne t'affiche rien c'est tout a faire normal car tu fais une condition sur rien du tout. Je m'eplique dans ta condition tu met SI (CONDITION) Alors... au lieu de SI (CONDITION=VRAI) Alors...
essaye plutôt de déclarer ta connexion et la sélection de ta base de cette manière suivante.
Lors de la recuperation du formulaire essaye aussi plutôt les simples cotes à la place des doubles
Enfin Pour ton affichage des résultats si ca ne t'affiche rien c'est tout a faire normal car tu fais une condition sur rien du tout. Je m'eplique dans ta condition tu met SI (CONDITION) Alors... au lieu de SI (CONDITION=VRAI) Alors...
<?php
//connexion au serveur MySql
$db=mysql_connect("127.0.0.1","id","mdp") or die("erreur de connexion".mysql_error());
//connexion à la base pst
mysql_select_db("pst",$db) or die("erreur de connexion à la base");
?>
//récupération des données à partir du formulaire
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$fonction=$_POST['fonction'];
//création de la requête SQL:
$req = "INSERT INTO intervenant (nom_intervenant,prenom_intervenant,fonction_intervenant,type_intervenant)VALUES('$nom','$prenom','$fonction','$typeinter')";
mysql_query($req) or die("erreur insertion ! ".mysql_error());