Modification dans bd (php & mysql)

fireworks Messages postés 48 Statut Membre -  
fireworks Messages postés 48 Statut Membre -
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 249 Statut Membre 41
 
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 48 Statut Membre 6
 
ok, j'enleve donc les deux dernières connexion, en espérant que cela va marcher?
0
vincent170186
 
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
 
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 48 Statut Membre 6
 
merci pour votre contribution je mets vos remarques en pratique te je teste si cela marche

merci
0