Erreur php

Résolu
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   -  
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je developpe un petit script pour faire des insertions dans ma base mais j'ai un message d'erreur:

Notice: Undefined index: prenom_cli in E:\pme\crea_rdv.php on line 10

Notice: Undefined index: mod_regl in E:\pme\crea_rdv.php on line 26

alors j'aimerais savoir à quoi est dû cela??

Merci pour vos éclaircissemnts!!!

16 réponses

Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
tu comprends le nouveau code ?

tu as maintenant une erreur MySQL, le plus simple pour la débogguer est dans un premier temps d'imprimer ta requête avec
echo "requête problématique = <br />$requete.<br />;

avant
$result = mysql_query($requete);

comme ça la requête problématique sera affichée dans ton navigateur.

ensuite tu récupères cette requête par copier/coller et tu vas la tester directement dans PHPMyAdmin (onglet SQL).

dans ce cas ça devrait être facile, l'erreur t'explique que tu n'as pas le même nombre de valeurs à insérer que de champs (colonnes) annoncés.
si tu as un champ avec incrémentation automatique il faut lui attribuer une valeur vide avec ''.
2
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
bon, il y a bien les deux clés manquantes dans le premier message d'erreur.

maintenant vire cette première ligne et recharge ta page (pour renvoyer au serveur sans avoir à retaper, ce que tu dois déjà faire).

et dis nous si l'ajout a lieu ou pas.
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
en code…
//le sprintf() n'est pas utile
$requete = "INSERT INTO INTERVENTION (operateur,date_intervention,heure_intervention,nom_client,prenom_client,adresse_client,code-postal,ville,digicode,telephone,mail,besoin,jour_rdv,heure_rdv,duree_rdv,debut_prestation,fin_prestation,intervention_realise,num_facture,montantht,mode_reglement)
VALUES ('$operateur,$date_inter,$heure_inter,$nom_cli,$prenom_cli,$adresse,$code_postal,$ville,$digicode,$telephone,$mail,$besoin,$jour_rdv,$heure_rdv,$duree_rdv,$debut_int,$fin_int,$intervention,$num_fact,$mont_ht,$mode_regl')";
// quand tu fais des tests ne mets jamais de "@" devant les fonctions ça cache les erreurs...
$result = mysql_query($requete);
// pour le reste il faut ajouter un test pour savoir si ça s'est bien passé ou pas
if( $result === true )
{ 
	echo ( 'Nouveau rendez-vous crée !!!' ); 
}
else
{
	echo ( 'Erreur !!!<br />'.mysql_error() ); 
}
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
en fait tu essaies de rentrer une seule valeur !
il faut ouvrir et fermer les guillemets (apostrophes) pour chaque valeur…
$requete = "INSERT INTO INTERVENTION (
operateur,
date_intervention,
heure_intervention,
nom_client,
prenom_client,
adresse_client,
code-postal,
ville,
digicode,
telephone,
mail,
besoin,
jour_rdv,
heure_rdv,
duree_rdv,
debut_prestation,
fin_prestation,
intervention_realise,
num_facture,
montantht,
mode_reglement)
VALUES (
'$operateur',
'$date_inter',
'$heure_inter',
'$nom_cli',
'$prenom_cli',
'$adresse',
'$code_postal',
'$ville',
'$digicode',
'$telephone',
'$mail',
'$besoin',
'$jour_rdv',
'$heure_rdv',
'$duree_rdv',
'$debut_int',
'$fin_int',
'$intervention',
'$num_fact',
'$mont_ht',
'$mode_regl')";

tant que tu es en phase de tests tu peux présenter ta requête comme ça, c'est plus simple à déboguer !

voili, voila, bonne nuit !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

ben ça signifie que tu essaies d'accéder à des valeurs d'un tableau pour les clés "prenom_cli" et "mod_regl" alors que ces clés ne sont pas définies.

pour t'en dire plus il faudrait savoir ce qu'il y a dans "E:\pme\crea_rdv.php" aux lignes 10 et 26…
-1
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
salut

ligne 10 j'ai ceci: $prenom_cli = mysql_real_escape_string($_POST['prenom_cli']);

ligne 2- j'ai ceci: $mod_regl = mysql_real_escape_string($_POST['mod_regl']);

pourtant la clé n'est pas sur ces champs!!!
-1
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
regarde dans le formulaire qui envoie les données, tu ne doit pas avoir de <input /> (ou autre) qui portent les noms "prenom_cli" et "mod_regl".
-1
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
re salut

malgré que je renomme les <input/> dans le formulaire,il reste que prenom_cli qui affiche encore le message!
Ca deviens bizare tou çà!
-1
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
dans le formulaire, à chaque "name" tu doubles avec un attribut "id" qui prend la même valeur.

dans "E:\pme\crea_rdv.php" en première ligne tu mets
print_r();

et tu regardes ce qui est effectivement renvoyé par ton formulaire.
-1
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
en ce moment j'ai ceci!

Warning: print_r() expects at least 1 parameter, 0 given in E:\pme\crea_rdv.php on line 2

Notice: Undefined index: prenom_cli in E:\pme\crea_rdv.php on line 11


je me demande pour "mod_regl" il n'affiche plus le message car j'ai renommé le champ input,mais pourquoi ça persiste avec le prénom???
-1
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
oups pardon, j'ai pas mis la variable à afficher !!!
print_r( $_POST );

mea culpa, mea maxima culpa
-1
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
ca y est!plus d'erreur,mais il n'enregistre pas dans la base de données!!
-1
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
mais il affiche quoi ?

devrait y avoir toutes les données renvoyées par ton formulaire, ce qui te permet de vérifier qu'il y a la clé signalée par le message d'erreur (ou pas).
-1
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
il m'affiche ceci!

Array ( [operateur] => Paul [date_inter] => 2008-02-03 [heure_inter] => 10:00 [nom_cli] => BISS [prenom_cli] => Baudry [adresse_cli] => rue de l'amour [cod_post] => 75000 [ville] => Paris [digicode] => 8765 [telephone] => 9876543 [mail] => biss@baudry.fr [besoin] => Besoin 2 [jour_rdv] => 2008-02-03 [heure_rdv] => 12:00 [duree_prev] => 00:30 [debut_int] => 2008-02-05 [fin_int] => 2008-02-09 [intervention] => Intervention 3 [num_fact] => 13 [mont_ht] => 76853 [mode_regl] => Cheque ) Nouveau rendez-vous crée!!!

en lisant il envoie toutes les données,mais il n'ajoute pas dans la base!
-1
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
salut!

toujours pas d'ajout dans la base;pourtant j'ai pas d'erreur de script php!

$requete = sprintf("INSERT INTO INTERVENTION (operateur,date_intervention,heure_intervention,nom_client,prenom_client,adresse_client,code-postal,ville,digicode,telephone,mail,besoin,jour_rdv,heure_rdv,duree_rdv,debut_prestation,fin_prestation,intervention_realise,num_facture,montantht,mode_reglement)

VALUES ('$operateur,$date_inter,$heure_inter,$nom_cli,$prenom_cli,$adresse,$code_postal,$ville,$digicode,$telephone,$mail,$besoin,$jour_rdv,$heure_rdv,$duree_rdv,$debut_int,$fin_int,$intervention,$num_fact,$mont_ht,$mode_regl')");
$result = @mysql_query($requete);
echo ('Nouveau rendez-vous crée!!!');

-1
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
j'ai maintenant ce message!

Erreur !!!
Column count doesn't match value count at row 1
-1
bissdebrazza Messages postés 2065 Date d'inscription   Statut Contributeur Dernière intervention   712
 
merci pr ta disponibilité ca marche nickel
-1