Probleme insertion dans bdd
Résolu
Dilidim
Messages postés
106
Date d'inscription
Statut
Membre
Dernière intervention
-
Dilidim Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
Dilidim Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai une page en PHP avec un bouton qui affiche un pop up permettant d'ajouter un client. Donc infos a saisir dans le formulaire : nom entreprise, contact, num, etc.
j'ai créé une page traitement.php :.
lorsque je clic sur mon bouton valider j'obtiens :
je tiens à préciser que je ne suis développeur à la base ^^
Help me !
EDIT : Ajout des balises de code (jordane)
j'ai une page en PHP avec un bouton qui affiche un pop up permettant d'ajouter un client. Donc infos a saisir dans le formulaire : nom entreprise, contact, num, etc.
j'ai créé une page traitement.php :.
<?php $cnx = mysql_connect( "localhost", "root", "root" ); $db = mysql_select_db( "actiline" ) ; $nom_ent = $_POST["nom_ent"] ; $nom_cl = $_POST["nom_cl"] ; $fonc = $_POST["fonc"]; $civ = $_POST["civ"]; $groupe = $_POST["fonction"]; $contrat = $_POST["contrat"]; $fixe = $_POST["fixe"]; $mob = $_POST["mob"]; $fax = $_POST["fax"]; $mail = $_POST["mail"]; $web = $_POST["web"]; $adr = $_POST["adr"]; $ville = $_POST["ville"]; $cp = $_POST["cp"]; $sql = "INSERT INTO client_tb ( nom_ent, nom_cl, fonc, civ, groupe, contrat, fixe, mob, fax, mail, web, adr, ville, cp) VALUES ( $nom_e, $nom_cl, $fonc, $civ, $groupe, $contrat, $fixe, $mob, $fax, $mail, $web, $adr, $ville, $cp) " ; $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; if($requete) { echo("L'insertion a été correctement effectuée") ; } else { echo("L'insertion à échouée") ; } ?>
lorsque je clic sur mon bouton valider j'obtiens :
( ! ) Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\Site\traitement.php on line 2
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
2 0.0010 248696 mysql_connect ( ) ..\traitement.php:2
( ! ) Notice: Undefined index: nom_ent in C:\wamp\www\Site\traitement.php on line 4
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: nom_cl in C:\wamp\www\Site\traitement.php on line 5
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: fonc in C:\wamp\www\Site\traitement.php on line 6
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: civ in C:\wamp\www\Site\traitement.php on line 7
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: fonction in C:\wamp\www\Site\traitement.php on line 8
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: contrat in C:\wamp\www\Site\traitement.php on line 9
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: fixe in C:\wamp\www\Site\traitement.php on line 10
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: mob in C:\wamp\www\Site\traitement.php on line 11
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: fax in C:\wamp\www\Site\traitement.php on line 12
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: mail in C:\wamp\www\Site\traitement.php on line 13
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: web in C:\wamp\www\Site\traitement.php on line 14
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: adr in C:\wamp\www\Site\traitement.php on line 15
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: ville in C:\wamp\www\Site\traitement.php on line 16
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined index: cp in C:\wamp\www\Site\traitement.php on line 17
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
( ! ) Notice: Undefined variable: nom_e in C:\wamp\www\Site\traitement.php on line 20
Call Stack
# Time Memory Function Location
1 0.0010 248392 {main}( ) ..\traitement.php:0
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , , , , , , , , , , , )' at line 2
je tiens à préciser que je ne suis développeur à la base ^^
Help me !
EDIT : Ajout des balises de code (jordane)
A voir également:
- Probleme insertion dans bdd
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
3 réponses
Bonjour,
1 - Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Ces messages ne sont "que" des alertes ....
Ca ne gène en rien le fonctionnement de tes scripts PHP.
Ils t'informent que tu as des variables non définies .... que tu utilises l'extension Mysql qui va devenir (peut être un jour) obsolète ....
Tu peux éventuellement désactiver l'affichage de ces messages d'erreur :
en plaçant cette ligne de code au début de tes pages :
L'idéal serait tout de même de corriger certains de ces "notices" :
en vérifiant... avant de les utiliser.. que les variables existent :
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
1 - Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Ces messages ne sont "que" des alertes ....
Ca ne gène en rien le fonctionnement de tes scripts PHP.
Ils t'informent que tu as des variables non définies .... que tu utilises l'extension Mysql qui va devenir (peut être un jour) obsolète ....
Tu peux éventuellement désactiver l'affichage de ces messages d'erreur :
en plaçant cette ligne de code au début de tes pages :
error_reporting(E_ALL & ~E_NOTICE);
L'idéal serait tout de même de corriger certains de ces "notices" :
en vérifiant... avant de les utiliser.. que les variables existent :
if(isset($_POST)){ $nom_ent = isset($_POST["nom_ent"])?$_POST["nom_ent"] :''; $nom_cl = isset($_POST["nom_cl"])? $_POST["nom_cl"] :'' ; $fonc = isset($_POST["fonc"])?$_POST["fonc"]:''; //etc... }else{ echo "<br> Aucune variable POST n'est disponible !<br>"; }
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Testes ce code :
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
<?php // Desactiver les "notice" //error_reporting(E_ALL & ~E_NOTICE); // Connexion à la BDD $cnx = mysql_connect( "localhost", "root", "root" ); $db = mysql_select_db( "actiline" ) ; //Fonction de récupération des variables POST function getPost($variableName,$defaultValue=''){ return isset($_POST[$variableName])?$_POST[$variableName]:$defaultValue; } //On vérifie qu'on a bien des données dans $_POST // Avant de continuer : if(isset($_POST)){ // récupération des variables $nom_ent = getPost("nom_ent") ; $nom_cl = getPost("nom_cl") ; $fonc = getPost("fonc"); $civ = getPost("civ"); $groupe = getPost("fonction"); $contrat = getPost("contrat"); $fixe = getPost("fixe"); $mob = getPost("mob"); $fax = getPost("fax"); $mail = getPost("mail"); $web = getPost("web"); $adr = getPost("adr"); $ville = getPost("ville"); $cp = getPost("cp"); $sql = "INSERT INTO client_tb ( nom_ent , nom_cl , fonc , civ , groupe , contrat , fixe , mob , fax , mail , web , adr , ville , cp ) VALUES ( '$nom_e' ,'$nom_cl' ,'$fonc' ,'$civ' ,'$groupe' ,'$contrat' ,'$fixe' ,'$mob' ,'$fax' ,'$mail' ,'$web' ,'$adr' ,'$ville' ,'$cp' ) " ; $requete = mysql_query($sql, $cnx) or die( mysql_error() . " <br> REQUETE : <pre>".$sql."</pre>" ) ; if($requete) { echo("<br>L'insertion a été correctement effectuée") ; } else { echo("<br>L'insertion à échouée") ; } }else{ echo "<pre>Aucune donnée présente dans _POST </pre>"; } ?>
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Voici mon formulaire :
<html> <head> <meta charset="utf-8" /> <title>ActiLine</title> <link rel="stylesheet" href="style/style.css" /> </head> <body> <form name="formulaire" action="traitement.php" method="POST"> <input type="submit" value="Valider"> <input type="button" value="Modifer"> <table> <tr> <td>Entreprise</td> <td><input type="text" id="nom_ent"></td> <td>Fixe</td> <td><input type="text" id="fixe" /></td> </tr> <tr> <td>Contact </td> <td><input type="text" id="nom_cl" /></td> <td> Mobile</td> <td><input type="text" id="mob" /></td> </tr> <tr> <td>Fonction</td> <td><input type="text" id="fonc" /> </td> <td>Fax</td> <td><input type="text" id="fax" /></td> </tr> <tr> <td>Civilité</td> <td><input name="civ" value="me" type="radio"> Madame <input name="civ" value="me" type="radio"> Monsieur</td> <td>Email</td> <td> <input type="text" id="mail" /></td> </tr> <tr> <td>Groupe</td> <td><select> <option>Particulier</option> <option>Pro</option></select></td> <td>Web</td> <td> <input type="text" id="web" /></td> </tr> <tr> <td>Contrat</td> <td><input name="contrat" value="me" type="radio"> Oui <input name="contrat" value="me" type="radio"> Non</td> <td>Adresse</td> <td><input type="text" id="adr" /></td> </tr> <tr> <td>Ville</td> <td><input type="text" id="ville" /> </td> <td>CP</td> <td><input type="text" id="cp" /></td> </tr> </table> <h3>historique</h3> <textarea name="commentaire" id="commentaire" rows="10" cols="50"></textarea> </form> </body> </html>
Bonjour,
Si tu fais un print_r($_POST); au début de ta page traitement.php .. tu vas voir qu'il y a un souci....
En effet... tes INPUT (dans ton formulaire) n'ont "que" des ID ...
hors... il leur faut aussi des "name"...
Si tu fais un print_r($_POST); au début de ta page traitement.php .. tu vas voir qu'il y a un souci....
En effet... tes INPUT (dans ton formulaire) n'ont "que" des ID ...
<td><input type="text" id="nom_ent"></td>
hors... il leur faut aussi des "name"...
<td><input type="text" name = "nom_ent" id="nom_ent"></td>
En ajoutant print_r($_POST); il m'indique : Array ( [nom_ent] => 5646 [fixe] => 868 [nom_cl] => 468468 [mob] => 464 [fonc] => 64 [fax] => 4 [mail] => [web] => [adr] => [ville] => [cp] => [commentaire] => )
Le id sert simplement pour le css ?
J'ai remplacé "id' par "name" comme tu me l'as indiqué et ça fonctionne.
Dans mon formulaire la partie "groupe" ne remonte pas, que mettre pour régler ce souci ?
Le id sert simplement pour le css ?
J'ai remplacé "id' par "name" comme tu me l'as indiqué et ça fonctionne.
Dans mon formulaire la partie "groupe" ne remonte pas, que mettre pour régler ce souci ?
La création de variable s'effectue en même temps que la création de la table non ?
Hein ???
$toto est une variable
$_POST est un "tableau" de variables
$_POST['titi'] est une variable (contenu dans $_POST)
Aucun rapport avec une table....
Il faut donc que tu récupères ces données.. pour ensuite les insérer dans ta BDD.
Tu le faisais déjà (en parti) lorsque tu écrivais par exemple :
Mais pour plus de sécurité .. on vérifie d'abord que la variable $_POST["nom_ent"] existe AVANT de l'utiliser. Pour cela ... on utilise la fonction ISSET()
Testes le code que je t'ai posté (ci dessous) et dis moi si ça fonctionne