Requete sql update [Résolu]

AfraSmii 9 Messages postés samedi 26 avril 2014Date d'inscription 27 août 2014 Dernière intervention - 26 avril 2014 à 19:47 - Dernière réponse : Carouge10 14 Messages postés lundi 30 septembre 2013Date d'inscription 3 mai 2014 Dernière intervention
- 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...
Afficher la suite 

17 réponses

Répondre au sujet
jordane45 20558 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 26 avril 2014 à 21:04
0
Utile
Bonjour,
merci de m'aider...
Y'a pas de soucis ... mais encore faudrait il savoir quel est ton souci .....
Commenter la réponse de jordane45
AfraSmii 9 Messages postés samedi 26 avril 2014Date d'inscription 27 août 2014 Dernière intervention - 26 avril 2014 à 21:13
0
Utile
1
Bonjour,
mon problème est que j'ai pas réussit à faire les modifications sur la table le code 2 error syntaxe sql
jordane45 20558 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 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 ??
Commenter la réponse de AfraSmii
Carouge10 14 Messages postés lundi 30 septembre 2013Date d'inscription 3 mai 2014 Dernière intervention - Modifié par jordane45 le 27/04/2014 à 01:50
0
Utile
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..
Commenter la réponse de Carouge10
AfraSmii 9 Messages postés samedi 26 avril 2014Date d'inscription 27 août 2014 Dernière intervention - 27 avril 2014 à 13:25
0
Utile
3
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?????????
Carouge10 14 Messages postés lundi 30 septembre 2013Date d'inscription 3 mai 2014 Dernière intervention - 27 avril 2014 à 19:36
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é.
Whismeril 11406 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 27 avril 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
Carouge10 14 Messages postés lundi 30 septembre 2013Date d'inscription 3 mai 2014 Dernière intervention - 27 avril 2014 à 21:19
@Whismeril : c'est noté, je vais faire plus attention à l'avenir.
Commenter la réponse de AfraSmii
AfraSmii 9 Messages postés samedi 26 avril 2014Date d'inscription 27 août 2014 Dernière intervention - 27 avril 2014 à 20:04
0
Utile
1
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
Carouge10 14 Messages postés lundi 30 septembre 2013Date d'inscription 3 mai 2014 Dernière intervention - 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.
Commenter la réponse de AfraSmii
AfraSmii 9 Messages postés samedi 26 avril 2014Date d'inscription 27 août 2014 Dernière intervention - 27 avril 2014 à 20:26
0
Utile
1
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
Carouge10 14 Messages postés lundi 30 septembre 2013Date d'inscription 3 mai 2014 Dernière intervention - 27 avril 2014 à 20:27
Ce fut avec plaisir.

N'oublier pas de mettre résolu.

Bon courage pour la suite.
Commenter la réponse de AfraSmii
AfraSmii 9 Messages postés samedi 26 avril 2014Date d'inscription 27 août 2014 Dernière intervention - Modifié par AfraSmii le 27/04/2014 à 20:46
0
Utile
1
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
Carouge10 14 Messages postés lundi 30 septembre 2013Date d'inscription 3 mai 2014 Dernière intervention - 27 avril 2014 à 20:54
Formulaire avec la méthode POST et sur la page 3 tu utilises GET....
Commenter la réponse de AfraSmii
AfraSmii 9 Messages postés samedi 26 avril 2014Date d'inscription 27 août 2014 Dernière intervention - 27 avril 2014 à 20:55
0
Utile
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
Commenter la réponse de AfraSmii
AfraSmii 9 Messages postés samedi 26 avril 2014Date d'inscription 27 août 2014 Dernière intervention - 27 avril 2014 à 20:59
0
Utile
1
Ok merci ça marche merci bien c'est très gentille....
Carouge10 14 Messages postés lundi 30 septembre 2013Date d'inscription 3 mai 2014 Dernière intervention - 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.
Commenter la réponse de AfraSmii

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.