Modification dans bd (php & mysql)

Fermé
fireworks Messages postés 45 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 30 juillet 2009 - 17 mars 2009 à 08:37
fireworks Messages postés 45 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 30 juillet 2009 - 17 mars 2009 à 11:32
Bonjour,

j'ai crée ma bd dans laquelle je veux inserer, modifier et supprimer les données, l'insertion marche bien mais pas la modification, ma bd est infos et il ya une table personnes

voici mon code de modification:
<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( "infos" ) ;

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

//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->titre." ".$result->message." <a href=\"modification2.php?idPersonne=".$result->id_personnes."\">modifier</a><br>\n") ;
}
?>
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;

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

//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 personnes
WHERE id_personne = ".$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="modification3.php" method="POST">
<input type="hidden" name="id" value="<?php echo($id) ;?>">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>titre</td>
<td><input type="text" name="titre" value="<?php echo($result->titre) ;?>"></td>
</tr>
<tr align="center">
<td>message</td>
<td><input type="text" name="message" value="<?php echo($result->message) ;?>"></td>
</tr>
<tr align="center">
<td>pseudo</td>
<td><input type="text" name="pseudo" value="<?php echo($result->pseudo) ;?>"></td>
</tr>
<tr align="center">
<td>email</td>
<td><input type="text" name="email" value="<?php echo($result->email) ;?>"></td>
</tr>
<tr align="center">
<td>site</td>
<td><input type="text" name="site" value="<?php echo($result->site) ;?>"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="modifier"></td>
</tr>
</table>
</form>
<?php
}//fin if
?>

<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;

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

//récupération des valeurs des champs:
//titre:
$titre = $_POST["titre"] ;
//message:
$message = $_POST["message"] ;
//pseudo:
$pseudo = $_POST["pseudo"] ;
//email:
$email = $_POST["email"] ;
//site:
$site = $_POST["site"] ;

//récupération de l'identifiant de la personne:
$id = $_POST["id"] ;

//création de la requête SQL:
$sql = "UPDATE personnes
SET titre = '$titre',
message = '$message',
pseudo = '$pseudo',
email = '$email',
site = '$site'
WHERE id_personne = '$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") ;
}
?>


</body>
</html>
A voir également:

5 réponses

killermano66 Messages postés 233 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 novembre 2010 41
17 mars 2009 à 08:55
Pourquois tu refais la connection 3 fois dans le même script ? Surtout que tu ne te déconnectes a aucuns moment.
0
fireworks Messages postés 45 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 30 juillet 2009 6
17 mars 2009 à 10:08
ok, j'enleve donc les deux dernières connexion, en espérant que cela va marcher?
0
vincent170186
17 mars 2009 à 10:40
bonjour bonjour !
pour ton $id tu récupère pas toujours la même chose ?
tu récupère d'abord
$id = $_GET["idPersonne"] ;
puis ensuite
$id = $_POST["id"] ;
est-ce 2 valeur différentes ?
si non alors enlève le $id = $_POST["id"] ;
comme ça ta variable $id resteras la même et donc ta condition dans la requête update reste la même !
0
vincent170186
17 mars 2009 à 10:44
re !
en plus ta method n'est pas la méme pour les deux recuperation la prememiere est en GET et la deuxiemme en POST ! vérifie la method du formulaire qui t'envoie les donnée !
si c'est GET alors pour $id = $_POST["id"] ;tu récupère $id="" donc comme il est vide ta condition(WHERE) n'est plus valable !
0

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

Posez votre question
fireworks Messages postés 45 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 30 juillet 2009 6
17 mars 2009 à 11:32
merci pour votre contribution je mets vos remarques en pratique te je teste si cela marche

merci
0