Erreur php

Résolu/Fermé
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 - 10 sept. 2008 à 20:46
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 - 10 sept. 2008 à 23:27
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 22:33
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 21:43
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 22:04
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 22:50
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 20:49
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 vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 20:53
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 20:55
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 vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 21:10
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 21:13
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 vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 21:19
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 21:25
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 vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 21:32
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 21:34
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 vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 21:38
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 vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 21:50
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 vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 22:18
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 vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 23:27
merci pr ta disponibilité ca marche nickel
-1