Requete sql update

Résolu
AfraSmii
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014
- 26 avril 2014 à 19:47
Carouge10
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014
- 27 avril 2014 à 21:19
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

jordane45
Messages postés
35484
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2022
356
26 avril 2014 à 21:04
Bonjour,
merci de m'aider...
Y'a pas de soucis ... mais encore faudrait il savoir quel est ton souci .....
0
AfraSmii
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

26 avril 2014 à 21:13
Bonjour,
mon problème est que j'ai pas réussit à faire les modifications sur la table le code 2 error syntaxe sql
0
jordane45
Messages postés
35484
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2022
356
26 avril 2014 à 22:53
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 ??
0
Carouge10
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

Modifié par jordane45 le 27/04/2014 à 01:50
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..
0
AfraSmii
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

27 avril 2014 à 13:25
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?????????
0
Carouge10
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

Modifié par Whismeril le 27/04/2014 à 21:08
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é.
0
Whismeril
Messages postés
17337
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
596
Modifié par Whismeril le 27/04/2014 à 21:10
@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
0
Carouge10
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

27 avril 2014 à 21:19
@Whismeril : c'est noté, je vais faire plus attention à l'avenir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AfraSmii
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

27 avril 2014 à 20:04
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
0
Carouge10
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

27 avril 2014 à 20:11
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.
0
AfraSmii
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

27 avril 2014 à 20:26
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
0
Carouge10
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

27 avril 2014 à 20:27
Ce fut avec plaisir.

N'oublier pas de mettre résolu.

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

Modifié par AfraSmii le 27/04/2014 à 20:46
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
0
Carouge10
Messages postés
14
Date d'inscription
lundi 30 septembre 2013
Statut
Membre
Dernière intervention
3 mai 2014

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

27 avril 2014 à 20:55
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
0
AfraSmii
Messages postés
9
Date d'inscription
samedi 26 avril 2014
Statut
Membre
Dernière intervention
27 août 2014

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

27 avril 2014 à 21:12
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.
0