le 06/12/2010 à 22:50
delfyno
Bonjour,
J'ai un souci et je sais pas comment le résoudre
J'ai une page qui affiche des enregistrements d'une base de données avec un lien modifier, quand je clique sur modifier, c'est censé m'ouvrir une autre page avec le formulaire pré-rempli des données de la base de données mais cela m'affiche ceci Erreur, l'id n'a pas été renseigné et dans la barre d'adresse j'ai ceci
et quand je tape id=1, j'ai ceci qui s'affiche SELECT * FROM membres WHERE id=1
Désolé mais aucun enregistrement ne correspond
Aidez moi s'il vous plaît
Voici mes codes sources :
page afficher.php
page modifier.php
page modifier2.php
Merci d'avance
<config>Windows XP / Safari 534.7</config>
J'ai un souci et je sais pas comment le résoudre
J'ai une page qui affiche des enregistrements d'une base de données avec un lien modifier, quand je clique sur modifier, c'est censé m'ouvrir une autre page avec le formulaire pré-rempli des données de la base de données mais cela m'affiche ceci Erreur, l'id n'a pas été renseigné et dans la barre d'adresse j'ai ceci
http://localhost/Projet/Projetfoot/page1/modifier.php?id=
et quand je tape id=1, j'ai ceci qui s'affiche SELECT * FROM membres WHERE id=1
Désolé mais aucun enregistrement ne correspond
Aidez moi s'il vous plaît
Voici mes codes sources :
page afficher.php
<?php
require_once("connect_db.php");
$sql = "SELECT * FROM membres;";
$resultat = qdb($sql);
$nombre_resultats = mysql_num_rows($resultat);
?>
<body bgcolor = "green">
<b>Quelles equipes voulez-vous modifier ?</b>
<center>
<table border = "1">
<tr bgcolor = "red">
<th>id</th>
<th>Pseudo</th>
<th>Mot de passe</th>
<th>Date</th>
<th colspan = "2">Admin</th>
</tr>
<?php
while ($enregistrements = mysql_fetch_array($resultat)) {?>
<tr bgcolor = "yellow">
<td><?php echo $enregistrements['id']; ?></td>
<td><?php echo $enregistrements['pseudo']; ?></td>
<td><?php echo $enregistrements['motdepasse']; ?></td>
<td><?php echo $enregistrements['date']; ?></td>
<td><div align = center><?php echo '<a href="modifier.php?id='.$id.'">'; ?> Modifier</a></td>
</tr>
<?php
}
?>
</table>
<hr /><a href = "index.php"><blink>Retour à l'accueil</blink></a>
</body>
page modifier.php
<?php
require_once("connect_db.php");
if($_REQUEST['id']) {
$id = $_REQUEST['id'];
// on se connecte à la bdd pour récupérer les informations de la fiche
$sql = "SELECT * FROM membres WHERE id=".$id;
$resultat = qdb($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
echo $sql . '<br />';
// si un enregistrement correspond
if(@mysql_num_rows($sql)) {
$sql = "SELECT * FROM membres WHERE id=".$id;;
echo $id;
$resultat = qdb($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// c'est ok alors on récupère les infos
$id = $_REQUEST['id'];
$pseudo = $_REQUEST['pseudo'];
$motdepasse = $_REQUEST['motdepasse'];
?>
<form action = "modifier2.php" method = "get">
<input type = "hidden" name = "id" value = "<?php echo $id; ?>">
<input type = "text" name = "pseudo" value = "<?php echo $pseudo; ?>">
<input type = "text" name = "motdepasse" value = "<?php echo $motdepasse; ?>">
<input type = "submit" value = "Valider la modification">
</form>
<?php
}
// si l'id n'est pas correcte on affiche une erreur
else {
echo 'Désolé mais aucun enregistrement ne correspond';
}
}
// si l'id n'est pas renseignée on affiche une erreur
else {
echo 'Erreur, l\'id n\'a pas été renseigné';
}
?>
page modifier2.php
<?php
require_once("connect_db.php");
// on teste si les variables du formulaire sont déclarées
if($_GET['id']) {
$id = $_GET['id'];
$pseudo = $_GET['pseudo'];
$motdepasse = $_GET['motdepasse'];
}
if (isset($_POST['pseudo']) && isset($_POST['motdepasse'])) {
// lancement de la requête
$sql = 'UPDATE membres SET motdepasse="'.$_POST['motdepasse'].'" WHERE pseudo="'.$_POST['pseudo'].'"';
// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base
mysql_close();
// un petit message permettant de se rendre compte de la modification effectuée
echo 'Le nouveau mot de passe de '.$_POST['pseudo'].' est : '.$_POST['motdepasse'];
}
else {
echo 'Les variables du formulaire ne sont pas déclarées';
}
?>
Merci d'avance
<config>Windows XP / Safari 534.7</config>