Il y a actuellement 108 visiteurs
Vendredi 18 Avril 2025
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

problème PHP Mysql [RESOLU]

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

problème PHP Mysql [RESOLU]

Message le 17 Fév 2009 11:33

Bonjour à tous et toutes !

Voila je mets un message pour un petit problèmes de PHP et Mysql.

je vous mets l'erreur que j'ai :
Code: Tout sélectionner
Notice: Undefined index: note in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95

Notice: Undefined index: message in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95
Erreur de syntaxe près de ')' à la ligne 1


Voici mon code :
Code: Tout sélectionner
<?php
         mysql_connect('localhost',$_SESSION['login'],$_SESSION['pass']);
         mysql_select_db('site');
         
         if ($_POST['matière']='ALSI'){
            $nom='Langa';
         }
         
         $requete='INSERT INTO appreciation VALUES ('.$nom.','.$_POST['matière'].','.$_POST['note'].','.$_POST['message'].')';
         
         mysql_query($requete) or exit(mysql_error());
   

?>

Voici la base concerné :

Code: Tout sélectionner
num mediumint(9)   Non  auto_increment               
  nom varchar(15) latin1_swedish_ci  Non                 
  matiere varchar(10) latin1_swedish_ci  Non                 
  note int(2)   Non                 
  message text latin1_swedish_ci  Non 


Je ne sais pas du tout quoi faire !!!

Merci
@+++Tard
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 


Message le 17 Fév 2009 11:50

...commence peut-être par enlever les "è" à "matière" (=> matiere)
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9058
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron, perle de Provence... et jamais loin d'une Debian
 

Message le 17 Fév 2009 11:55

C'est fait !

Mais j'ai toujours les même problèmes.

Merci en tout cas c'est toujours ça
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Message le 17 Fév 2009 11:58

première chose que je vois :

Code: Tout sélectionner
if ($_POST['matière']='ALSI'){
            $nom='Langa';
         }


Il faut mettre "==" pour tester une égalité en PHP, avec ton "=", tu donnes la valeur 'ALSI' à $_POST['matière'].

Pour éviter les "Notice: Undefined index", je te conseille de tester l'existence de toutes les variables POST avec une ligne de ce genre en début de fichier :

$note = (isset($_POST['note'])) ? $_POST['note'] : "";

ensuite tu utilise la variable $note au lieu de $_POST['note'] dans le reste du fichier.
Par conséquent "if ($_POST['matiere']='ALSI'..." deviendra "if ($matiere=='ALSI'...", etc...

Enfin pour la dernière erreur, remplace le premier et le dernier apostrophe par des guillemets dans la ligne :
Code: Tout sélectionner
$requete='INSERT INTO appreciation VALUES ('.$nom.','.$_POST['matière'].','.$_POST['note'].','.$_POST['message'].')';


ce qui donne :

Code: Tout sélectionner
$requete="INSERT INTO appreciation VALUES ('.$nom.','.$_POST['matière'].','.$_POST['note'].','.$_POST['message'].')";
Avatar de l'utilisateur
gael49
Expert(e)
Expert(e)
 
Messages: 1935
Inscription: 07 Sep 2004 20:11
Localisation: Les Mauges
 

Message le 17 Fév 2009 12:10

J'ai commencer par le mettre le == et sa donne ça :
Code: Tout sélectionner
Notice: Undefined index: matiere in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 91

Notice: Undefined variable: nom in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95

Notice: Undefined index: matiere in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95

Notice: Undefined index: note in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95

Notice: Undefined index: message in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95
Erreur de syntaxe près de ',,)' à la ligne 1


Et si je mets des guillemets à la place de la premiere et dernière simple cote ('), J'ai ça :
Code: Tout sélectionner
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95


Désolé pour toute ces questions, mais je débute le PHP.

Merci
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Message le 17 Fév 2009 12:43

Je pense qu'il faut que j'explique un peu plus la base de données (enfin la table concerné).

Les lignes de la table appréciation sont constitué d'un num (clé primaire qui s'auto-incrémante), nom, matiere, note, message.

Et donc pour le code j'ai fait un insert to et dans les values j'ai pa mis de num car je savais pas s'il fallait le mettre vue qu'il y avait une auto-incrémentation.

Vous en pensez quoi ?
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Message le 17 Fév 2009 13:06

Titom79 a écrit:J'ai commencer par le mettre le == et sa donne ça :
Code: Tout sélectionner
Notice: Undefined index: matiere in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 91

Notice: Undefined variable: nom in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95

Notice: Undefined index: matiere in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95

Notice: Undefined index: note in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95

Notice: Undefined index: message in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95
Erreur de syntaxe près de ',,)' à la ligne 1




Tous ces messages devraient disparaitre si tu met 1 ligne par variable POST, comme ceci :

Code: Tout sélectionner
$matiere= (isset($_POST['matiere'])) ? $_POST['matiere'] : "";
$nom = (isset($_POST['nom'])) ? $_POST['nom'] : "";
$note = (isset($_POST['note'])) ? $_POST['note'] : "";
$message= (isset($_POST['message'])) ? $_POST['message'] : "";


Et ensuite tu n'utilise plus de $_POST mais seulement les variables, $matiere, $note,$nom,$message.

Titom79 a écrit:Et si je mets des guillemets à la place de la premiere et dernière simple cote ('), J'ai ça :
Code: Tout sélectionner
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 95



Désolé, en fait il fallait mettre (avec la modif de la requete en +) :

Code: Tout sélectionner
$requete="INSERT INTO appreciation (nom,matiere,note,message) VALUES ('$nom','$matiere','$note','$message')";



Et sinon pour le ==, je confirme qu'il faut le mettre, les messages d'erreur n'ont rien à voir.
Avatar de l'utilisateur
gael49
Expert(e)
Expert(e)
 
Messages: 1935
Inscription: 07 Sep 2004 20:11
Localisation: Les Mauges
 

Message le 17 Fév 2009 13:06

Je n'ai plus qu'une erreur.
J'ai ajouter cette ligne enfaite avant de lancé la requête :
Code: Tout sélectionner
if ((isset ($_POST['matiere'])) and (isset ($_POST['note'])) and (isset ($_POST['message'])))


Mais j'ai toujours ce problèmes :
Code: Tout sélectionner
Notice: Undefined index: matiere in C:Program FilesEasyPHP 2.0b1wwwSITEajout_appreciation.php on line 91


Les lignes concernés sont içi :
Code: Tout sélectionner
<?php
         mysql_connect('localhost',$_SESSION['login'],$_SESSION['pass']);
         mysql_select_db('site');
         
         if ($_POST['matiere']=="ALSI"){
            $nom='Langa';
         }


Meci
@+++Tard
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Message le 17 Fév 2009 13:10

Titom79 a écrit:Je n'ai plus qu'une erreur.
J'ai ajouter cette ligne enfaite avant de lancé la requête :
Code: Tout sélectionner
if ((isset ($_POST['matiere'])) and (isset ($_POST['note'])) and (isset ($_POST['message'])))




Nos réponses se sont croisées, ce if ne sera pas nécessaire si tu fais ce que j'explique dans mon message précédent.


PS : Sinon il y a un truc pour ne plus afficher les erreurs "NOTICE", mais je le déconseille car tu oublieras de tester les variables POST ou GET si ces messages ne le rappellent pas...

Code: Tout sélectionner
error_reporting(E_ALL ^ E_NOTICE);
Avatar de l'utilisateur
gael49
Expert(e)
Expert(e)
 
Messages: 1935
Inscription: 07 Sep 2004 20:11
Localisation: Les Mauges
 

Message le 17 Fév 2009 13:26

Oui c'est vrai que ça revenai au même j'ai juste préférer mettre une ligne que je comprennais car je l'avai déja vue en TP, et vue que je débute et que je n'ai pas fini de lire "PHP et Mysql pour les nuls", je me contente de ce que je connais.

C'est bon j'ai réglé les problèmes, j'ai remplacer le if par un switch vue que de toute façon plus tard il fallait que je le remplace.

L'autre problèmes que j'ai mainantenant c'est que malgré le bon fonctionnement tout sa, rien ne s'ajoute à la base de données !

Je pense qu'il manque l'ajout du numéro dans la table (num en clé primaire dans la base de données), mais je ne sais pas comment faire vu que c'est une auto-incrémentation ?
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Message le 17 Fév 2009 16:54

Titom79 a écrit:L'autre problèmes que j'ai mainantenant c'est que malgré le bon fonctionnement tout sa, rien ne s'ajoute à la base de données !

Je pense qu'il manque l'ajout du numéro dans la table (num en clé primaire dans la base de données), mais je ne sais pas comment faire vu que c'est une auto-incrémentation ?


Non, s'il est en auto-incrémentation, pas besoin de l'indiquer évidemment, est-ce que tu as bien mis un mysql_query pour lancer la requête ?

Exemple :

Code: Tout sélectionner
if(!mysql_query($requete)) {
 echo "Erreur dans la requete 'requete' : <br/>". mysql_error()."<br/>".$requete;
}
Avatar de l'utilisateur
gael49
Expert(e)
Expert(e)
 
Messages: 1935
Inscription: 07 Sep 2004 20:11
Localisation: Les Mauges
 

Message le 17 Fév 2009 17:43

Voila ma requête d'ajout :
Code: Tout sélectionner
mysql_connect('localhost',$_SESSION['login'],$_SESSION['pass']);
         mysql_select_db('site');
         
         if ((isset ($_POST['matiere'])) and (isset ($_POST['note'])) and (isset ($_POST['message']))){
            
            switch ($_POST['matiere'])
         { case "ALSI" :
               $nom="Langa";
         }
         
         $requete='INSERT INTO appreciation VALUES ('.$nom.','.$_POST['matiere'].','.$_POST['note'].','.$_POST['message'].')';
         
         mysql_query($requete) or exit(mysql_error());
         }
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Message le 17 Fév 2009 19:02

Essaye une requête simple, ça ne fonctionne pas c'est sans doute la connexion qui ne se fait pas, sinon c'est l'auto-incrément qui ne se fait pas.

Code: Tout sélectionner
$requete="INSERT INTO appreciation VALUES ('99','Gael49','Informatique','20','Hello !')";


Tu peux aussi faire un "echo $requete", ensuite tu copie la requête qui s'est affichée, et tu la lances directement dans phpmyadmin, pour voir si tu as une erreur ou si ça passe.
Avatar de l'utilisateur
gael49
Expert(e)
Expert(e)
 
Messages: 1935
Inscription: 07 Sep 2004 20:11
Localisation: Les Mauges
 

Message le 17 Fév 2009 19:34

La requête marche très bien dans php my admin.

Et ça marche aussi si je fait directement avec des valeurs comme tu m'a dit!

Mais il faut que je le fasse par des variable comment faire ?

Le problème doit venir de VALUES pour la clé primaire num qui est en auto-incrémentation.
Avatar de l'utilisateur
Titom79
Expert(e)
Expert(e)
 
Messages: 977
Inscription: 06 Aoû 2007 17:44
 

Message le 17 Fév 2009 20:59

Est-ce que tu as testé avec ça ?

Code: Tout sélectionner
$requete='INSERT INTO appreciation (nom,matiere,note,message) VALUES ('.$nom.','.$_POST['matiere'].','.$_POST['note'].','.$_POST['message'].')';
Avatar de l'utilisateur
gael49
Expert(e)
Expert(e)
 
Messages: 1935
Inscription: 07 Sep 2004 20:11
Localisation: Les Mauges
 

Suivante


Sujets similaires

Message [Réglé] problème connexion internet sous linux mint 20.03
Bonjour,Pourriez-vous m'aider à résoudre le problème suivant : Sur un pc de bureau ACER Aspire M 5910, il y a Linux Mint 20.03 qui est installé mais le souci est au niveau de la connexion internet Ethernet qui ne fonctionne plus alors que le voyant du port Ethernet est bien allumé mais impossible d ...
Réponses: 8

Message [réglé] Probleme carte ethernet
Bonjour a tous,Depuis hier je rencontre un problème avec ma carte ethernet. Mon PC m'informe que celui-ci n'est pas connecté a internet (icône de la barre des taches). Par contre j'ai internet par le biais de mon VPN. Avez vous une petite idée ? Par avance merci
Réponses: 35

Message probleme affichage ecran
salut tout le monde Je suis sur windows 11 depuis environ janvier 2025 : ma dernière Édition : Windows 11 Professionnel Version 24H2 (build du système d'exploitation 26100.3323 )Installé le ?01/?03/?2025Build du système d?exploitation 26100.3323Expérience Pack d?expérience de fonctionnalités Windo ...
Réponses: 10

Message [Résolu] Demarrage W10
Bonjour à tous,Depuis peu, mon PC démarre en affichant les documents stockés sur mon DD externe autrement que sur mon bureau. Seriez vous m'expliquer comment y remédier s'il vous plait ? Merci par avance A bientot
Réponses: 12

Message Problème mise à jour windows 11
Salut à tous, j'ai un souci sur mon ordinateur hp tout en un, à l'époque de la sortie de Win11 j'vavais forcé le passage car mon ordinateur n'avait les prérecquis, tout a toujours bien fonctionner sans problème, sauf depuis peu, je ne peux plus faire de MAJ sur windows update, il y a écrit "Vou ...
Réponses: 8

Message Probleme Meta Facebook pour page pro
Bonjour à tous, est ce quelqu'un ici s'y connait en Meta facebook pour la gestion des pages pro et les liens instagram? Je m'explique en 2021 j'ai créer mon entreprise avec une page Facebook qui était rattaché à mon profil perso ou j'avais la gestion intégrale, puis en 2022 un profil instagram profe ...
Réponses: 2


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.