Corriger erreur php: modification de base données

Petit nouveau ! | 7 Messages

01 mars 2013, 12:17

salam tout le monde:

brabi svp j'ai un problem:

j'ai crée une base données contenant table "cr". j'ai hébergé mon site & ça fonctionne bien...
je veux par PHP modifier le contenu de la table "cr"

alors voici les 3 pages php que j'ai crée:

crmodification.php :

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>crmodification3</title> </head> <body> <?php // Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1) header('Content-type: text/html; charset=UTF-8'); //connection au serveur: $cnx = mysql_connect( "host", "user", "xxx" ) ; //sélection de la base de données: $db = mysql_select_db( "AAAAA" ) ; // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1) mysql_query("SET NAMES 'utf8'"); //requête SQL: $sql = "SELECT * FROM cr ORDER BY no" ; //exécution de la requête: $requete = mysql_query( $sql, $cnx ) ; //affichage des données: while( $result = mysql_fetch_object( $requete ) ) { echo( "<div align=\"center\">" .$result->no." ".$result->nom." ".$result->cin."<a href=\"crmodification2.php?idPersonne=".$result->no."\">modifier</a></div>\n" ) ; } ?> </body> </html>
puis page2: crmodification2.php

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>crmodification3</title> </head> <body> <?php // Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1) header('Content-type: text/html; charset=UTF-8'); //connection au serveur: $cnx = mysql_connect( "host", "user", "xxx" ) ; //sélection de la base de données: $db = mysql_select_db( "AAAAA" ) ; // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1) mysql_query("SET NAMES 'utf8'"); //récupération de la variable d'URL, //qui va nous permettre de savoir quel enregistrement modifier $id = $_GET["idPersonne"] ; //requéte SQL: $sql = "SELECT * FROM cr WHERE no = ".$id ; //exécution de la requéte: $requete = mysql_query( $sql, $cnx ) ; //affichage des données: if( $result = mysql_fetch_object( $requete ) ) { ?> <form name="insertion" action="crmodification3.php" method="POST"> <input type="hidden" name="no" value="<?php echo($id) ;?>"> <table border="0" align="center" cellspacing="2" cellpadding="2"> <tr align="center"> <td>no</td> <td><input type="text" name="no" value="<?php echo($result->no) ;?>"></td> </tr> <tr align="center"> <td>nom</td> <td><input type="text" name="nom" value="<?php echo($result->nom) ;?>"></td> </tr> <tr align="center"> <td>cin</td> <td><input type="text" name="cin" value="<?php echo($result->cin) ;?>"></td> </tr> <tr align="center"> <td>identifiant unique</td> <td><input type="text" name="identifiantunique" value="<?php echo($result->identifiantunique) ;?>"></td> </tr> <tr align="center"> <td>date naissance</td> <td><input type="text" name="datenaissance" value="<?php echo($result->datenaissance) ;?>"></td> </tr> <tr align="center"> <td>lieu naissance</td> <td><input type="text" name="lieunaissance" value="<?php echo($result->lieunaissance) ;?>"></td> </tr> <tr align="center"> <td>etat civil</td> <td><input type="text" name="etatcivil" value="<?php echo($result->etatcivil) ;?>"></td> </tr> <tr align="center"> <td>enfants</td> <td><input type="text" name="enfants" value="<?php echo($result->enfants) ;?>"></td> </tr> <tr align="center"> <td>grade actuel</td> <td><input type="text" name="gradeactuel" value="<?php echo($result->gradeactuel) ;?>"></td> </tr> <tr align="center"> <td>grade entree</td> <td><input type="text" name="gradeentree" value="<?php echo($result->gradeentree) ;?>"></td> </tr> <tr align="center"> <td>date entree</td> <td><input type="text" name="dateentree" value="<?php echo($result->dateentree) ;?>"></td> </tr> <tr align="center"> <td>grade obtention</td> <td><input type="text" name="gradeobtention" value="<?php echo($result->gradeobtention) ;?>"></td> </tr> <tr align="center"> <td>fonction</td> <td><input type="text" name="fonction" value="<?php echo($result->fonction) ;?>"></td> </tr> <tr align="center"> <td>diplomes</td> <td><input type="text" name="diplomes" value="<?php echo($result->diplomes) ;?>"></td> </tr> <tr align="center"> <td>intirimes</td> <td><input type="text" name="intirimes" value="<?php echo($result->intirimes) ;?>"></td> </tr> <tr align="center"> <td>stages & formations</td> <td><input type="text" name="stagesformations" value="<?php echo($result->stagesformations) ;?>"></td> </tr> <tr align="center"> <td>tel</td> <td><input type="text" name="tel" value="<?php echo($result->tel) ;?>"></td> </tr> <tr align="center"> <td>adresse</td> <td><input type="text" name="adresse" value="<?php echo($result->adresse) ;?>"></td> </tr> <tr align="center"> <td>domiciliation salaire</td> <td><input type="text" name="domiciliationsalaire" value="<?php echo($result->domiciliationsalaire) ;?>"></td> </tr> <tr align="center"> <td>no compte</td> <td><input type="text" name="nocompte" value="<?php echo($result->nocompte) ;?>"></td> </tr> <tr align="center"> <td>postes anterieurs</td> <td><input type="text" name="postesanterieurs" value="<?php echo($result->postesanterieurs) ;?>"></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="modifier"></td> </tr> </table> </form> <?php }//fin if ?> </body> </html>
et finallement la page3: crmodification3.php

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>crmodification3</title> </head> <body> <?php // Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1) header('Content-type: text/html; charset=UTF-8'); //connection au serveur: $cnx = mysql_connect( "host", "user", "xxx" ) ; //sélection de la base de données: $db = mysql_select_db( "AAAAA" ) ; // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1) mysql_query("SET NAMES 'utf8'"); //récupération des valeurs des champs: //nom: $nom = $_POST["nom"] ; //prenom: $cin = $_POST["cin"] ; //identifiantunique: $identifiantunique = $_POST["identifiantunique"] ; //datenaissance: $datenaissance = $_POST["datenaissance"] ; //lieunaissance: $lieunaissance = $_POST["lieunaissance"] ; //etatcivil: $etatcivil = $_POST["etatcivil"] ; //enfants: $enfants = $_POST["enfants"] ; //gradeactuel: $gradeactuel = $_POST["gradeactuel"] ; //gradeentree: $gradeentree = $_POST["gradeentree"] ; //dateentree: $dateentree = $_POST["dateentree"] ; //gradeobtention: $gradeobtention = $_POST["gradeobtention"] ; //fonction: $fonction = $_POST["fonction"] ; //diplomes: $diplomes = $_POST["diplomes"] ; //intirimes: $intirimes = $_POST["intirimes"] ; //stagesformations: $stagesformations = $_POST["stagesformations"] ; //tel: $tel = $_POST["tel"] ; //adresse: $adresse = $_POST["adresse"] ; //domiciliationsalaire: $domiciliationsalaire = $_POST["domiciliationsalaire"] ; //nocompte: $nocompte = $_POST["nocompte"] ; //postesanterieurs: $postesanterieurs = $_POST["postesanterieurs"] ; //récupération de l'identifiant de la personne: $id = $_POST["no"] ; //création de la requéte SQL: $sql = "UPDATE cr SET nom = '$nom', cin = '$cin', identifiantunique = '$identifiantunique', datenaissance = '$datenaissance', lieunaissance = '$lieunaissance', etatcivil = '$etatcivil', enfants = '$enfants', gradeactuel = '$gradeactuel', gradeentree = '$gradeentree', dateentree = '$dateentree', gradeobtention = '$gradeobtention', fonction = '$fonction', diplomes = '$diplomes', intirimes = '$intirimes', stagesformations = '$stagesformations', tel = '$tel', adresse = '$adresse', domiciliationsalaire = '$domiciliationsalaire', nocompte = '$nocompte', postesanterieurs = '$postesanterieurs', WHERE no = '$id' " ; //exécution de la requéte SQL: $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; //affichage des résultats, pour savoir si la modification a marchée: if($requete) { echo("La modification a été correctement effectuée") ; } else { echo("La modification a échoué") ; } ?> </body> </html>
...
le probleme : il ya erreur qui s'affiche lors de la modification:
je reçois ce message "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 'WHERE no = '17'' at line 22"
merci pour votre aide :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 mars 2013, 22:35

salut,



il y a une virgule en trop devant le where.


il est important de tester les requêtes avec un client mysql (phpmyadmin ou autre) avant de les utiliser.

dans ce type de cas tu peux aussi afficher la requête complètement et l'utiliser sans un client sql.


@+
Il en faut peu pour être heureux ......