Requete sql update [Résolu]

Signaler
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014
-
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014
-
Bonjour..je veut modifier un champ de table avec php ou j'ai créé 3 pages la première pour récupérer les données de table ,la deuxième pour la recuperation de champs que je veut le modifier la 3 éme pour l'update
<html>
<head>
<title>modification de données en PHP: partie 1</title>
</head>
<body>
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "Afra" ) ;

//requête SQL:
$sql = "SELECT *
FROM personnes
ORDER BY nom" ;

//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->nom." ".$result->prenom
." <a href=\"edit2.php?idPersonne=".$result->id."\">modifier</a></div>"

);
}
?>
</body>
</html>

<html>
<body>
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "Afra" ) ;
//requête SQL:
$sql = "SELECT *
FROM personnes
where id=".$_GET["id"];
//exécution de la requête:
$requete = mysql_query( $sql)or die(mysql_error()); ;
//affichage des données:
while( $result = mysql_fetch_object( $requete ))
{
?>
<form name="insertion" action="edit3.php" method="POST">
<input type="hidden" name="id" value="<?php echo($id) ;?>">
Nom: <input type="text" name="nom" value="<?php echo($result->nom) ;?>"><br>
Prenom:<input type="text" name="prenom" value="<?php echo($result->prenom) ;?>"><br>
<input type="submit" value="modifier">
</form>
<?php
}//fin if
?>
</body>
</html>
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "Afra" ) ;

//récupération des valeurs des champs:
//nom:
$nom = $_POST["nom"] ;
//prenom:
$prenom = $_POST["prenom"] ;
$id = $_POST["id"] ;

//création de la requête SQL:
$sql = "UPDATE personnes
SET nom = '$nom',
prenom = '$prenom',

WHERE id = '$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 à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>
merci de m'aider...

9 réponses

Messages postés
32150
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 avril 2021
345
Bonjour,
merci de m'aider...
Y'a pas de soucis ... mais encore faudrait il savoir quel est ton souci .....
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

Bonjour,
mon problème est que j'ai pas réussit à faire les modifications sur la table le code 2 error syntaxe sql
Messages postés
32150
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 avril 2021
345
Une erreur ?
Ok ... tu aurais du commencer par ça...

Par contre... sur quelle requête ? Quelle page ?
As-tu fais un ECHO de ta requête pour la tester en direct dans ta base de données ?
Quel est le message d'erreur exacte ??
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

Bonsoir,

Page 2 :
<input type="hidden" name="id" value="<?php echo($id) ;?>">

il viens d'où "$id" ? ça ne serait pas "$result->id" ?
Page 3 :
$sql = "UPDATE personnes
            SET nom         = '$nom', 
           prenom     = '$prenom',
   
           WHERE id = '$id' " ;

Il n'y a pas de , après '$prenom' car il n'y a plus rien à ajouter ensuite.


Message édité par Modérateur : Ajout des balises de code..
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

Bonjour ...merci bien pour vos attentions..l' erreur c'est au niveau de code suivant :
<html>
<body>
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "Afra" ) ;
//requête SQL:
$sql = "SELECT *
FROM personnes
where id=".$_GET["id"];
//exécution de la requête:
$requete = mysql_query( $sql)or die(mysql_error());
//affichage des données:
while( $result = mysql_fetch_object( $requete ))
{
mysql_close();
?>
<form name="insertion" action="edit3.php" method="POST">
<input type="hidden" name="id" value="<?php echo $result["id"] ?>"/>
Nom: <input type="text" name="nom" value="<?php echo $result["nom"]?>"/><br>
Prenom:<input type="text" name="prenom" value="<?php echo $result["prenom"]?>"/><br>
<input type="submit" value="modifier">
</form>
<?php
}//fin if
?>
</body>
</html>
Il m'affiche 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 '' at line 3?????????
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

1/
 $sql = "SELECT *
       FROM personnes
      where id=".$_GET["id"];


Remplace par
$sql = 'SELECT * FROM personnes WHERE id='.$_GET["id"];


2/
Tu demandes des objets en résultat de ta requète sql et pour les afficher tu le fais sous formes de tableau ???
Pourquoi avoir changer le formulaire initial ? Il y a vais juste l'appelle de l'id qui était faux comme je l'avais notifié.
Messages postés
15856
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
23 avril 2021
535
@carouge, merci de ton implication. Pour plus de lisibilité, pense à utiliser les balises de coloration syntaxique, voir ici.
Jordane a déjà édité un de tes messages plus haut
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

@Whismeril : c'est noté, je vais faire plus attention à l'avenir.
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

j'ai essayé mais aucune solution
<html>
<body>
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "Afra" ) ;
//requête SQL:
$sql = 'SELECT * FROM personnes WHERE id='.$_GET["id"];
//exécution de la requête:
$requete = mysql_query( $sql)or die(mysql_error());
//affichage des données:
while( $result = mysql_fetch_object( $requete ))
{
mysql_close();
?>
<form name="insertion" action="edit3.php" method="POST">
<input type="hidden" name="id" value="<?php echo($result->id) ;?>">
Nom: <input type="text" name="nom" value="<?php echo($result->nom) ;?>"><br>
Prenom:<input type="text" name="prenom" value="<?php echo($result->prenom) ;?>"><br>
<input type="submit" value="modifier">
</form>
<?php
}//fin if
?>
</body>
</html>
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 '' at line 1
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

Alors à la page 1 tu envois "idPersonne" dans l'url et à la page 2 tu veux récupérer juste "id", il faut modifier le $_GET avec la bonne variable.

Je ne sais pas si ça aura de l'influence mais enlève mysql_close et mets le après la boucle while.
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

Merci beaucoup mon problème est résolu maintenant je vais passer à la dernière page ou la requête update merci encore une fois
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

Ce fut avec plaisir.

N'oublier pas de mettre résolu.

Bon courage pour la suite.
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

Merciii....voila le code suivant ou je suis encore en panne!!!!
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "Afra" ) ;
//récupération des valeurs des champs:
//nom:
$nom = $_GET["nom"] ;
//prenom:
$prenom = $_GET["prenom"] ;
$id = $_GET["idPersonne"] ;
//création de la requête SQL:
$sql = "UPDATE personnes SET 'nom' ='$nom','prenom' = '$prenom' WHERE id=".$_GET["idPersonne"];
//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 à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>





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 '' at line 1
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

Formulaire avec la méthode POST et sur la page 3 tu utilises GET....
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

Voila j'ai corrigé le problème qu'il m'affiche modification effectué mais en réalité il n'y a pas des modifications dans la base!!!!!!!
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "Afra" ) ;
//récupération des valeurs des champs:
//nom:
$nom = $_GET["nom"] ;
//prenom:
$prenom = $_GET["prenom"] ;
$id = $_GET["idPersonne"] ;
//création de la requête SQL:
$sql = "UPDATE personnes SET 'nom' ='$nom','prenom' = '$prenom' WHERE id = '$idPersonne' ";
//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 à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>
!!!!

La modification à été correctement effectuée
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

Ok merci ça marche merci bien c'est très gentille....
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

Gentil ça m'ira. (^_^)

Pour la suite, je te conseil d'éviter la methode get pour ce genre de modification ou il peut y avoir des espaces et des accents dans les noms/prénoms et préféré la méthode post.