Il y a actuellement 403 visiteurs
Vendredi 26 Avril 2024
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: 9041
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... 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 probleme avec mon compte outlook
Salut tout le mondevoilà, je m'explique en espérant que je sois compréhensible : de façon aléatoire et pas systématique, mais c'est récurrent, il ne se passe pas 15 jours, je recoit arriver sur mon bureau après démarrage de mon pc ou parfois même pc allumer et fonctionnel pendant la journée un m ...
Réponses: 11

Message Problème de signatue avec gmail.
Bonsoir, voilà je voudrai mettre une bannière comme signature pour mes emails envoyés avec gmail. Je ne sais pas trop comment faire ? Quelqu'un pourrait il m aider? Merci.
Réponses: 7

Message [Réglé] probleme USB
Bonjour a tous,Je ne sais ou poster mon problème d'USB je le post donc ici . Mon souci vient du fait que lorsque je branche mon intercom SENA SRL 3 sur les USB mon PC sous W10 j'ai l'impression que celui-ci se connecte deux fois car j'entends bien le son de la connexion se faire deux fois et j'ent ...
Réponses: 5

Message [Résolu] comment utiliser opera
Bonjour J'ai installé opera, je n'arrive pas à le mettre en français ? Il y a aussi la page d'accueil qui me gêne, pleine de petites fenêtres qui ne m'intéressèrent pas. Merci
Réponses: 17

Message Problème avec la KB5034441
Bonjour,Certains ont du rencontrer ce problème avec cette mise à jour qui a bien du mal à passer.Je viens de recevoir ce correctif proposé par Microsoft :ICI.Je vous le dit de suite personnellement si j'étais dans le même cas que vous j'attendrai une réelle mise à jour mise en place par Microsoft.Je ...
Réponses: 12

Message encore un probleme mise à jour windows KB5001716
Salut à vous cela commence, j'avoue, à devenir pénible, j'en suis désolé, mais ce soir au 5 mars 2024 est apparu un nouveau problème sur Windows update la mise à jour KB5001716 ne veut pas s'installer, j'ai eu beau redémarrer mon pc pour voir si cela pouvait fonctionner rien à faire cette mise à jou ...
Réponses: 28

Message [Réglé] problème de barre inexistante sur pc portable asus
Bonjour,Depuis hier, en allumant mon pc portable asus modèle F 402 S, il bloque sur le bureau, je n'ai plus la barre de tâches donc les icônes à côté de l'heure comme avant et la souris fait un rond et impossible de cliquer et d'ouvrir des fichiers ou d'aller sur internet c'est bizarre, est-ce une ...
Réponses: 9


Qui est en ligne

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


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