POST et GET=> récupérer l'id de page en page
Bonjour tout le monde:D
un problème au niveau d'un script php qui permet de modifier un événement de la table événement:
je m'explique:
1/ une page nommée modifier_evenement.php , qui contient un tableau de tous les événements existant dans la table événement.
chaque entrée de ce tableau présente un événement
j'ai ajouter une colonne dans ce tableau qui présente un lien nommé MODIFIER, pour mettre à l'administrateur de modifier l’événement souhaité.
ce lien permet de se brancher à une page nommée nv_modification.php en envoyant le id de l'événement choisi à être modifier
je donne le script de la page modifier_evenement.php , qui liste les événements:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| <?php
/*connecter la bdd*/
try
{
$bdd=new PDO('mysql:host=localhost;dbname=verts_maroc', 'root', '');
echo "connexion réussie";
}
catch(Exception $e)
{
die('erreur:' .$e->getMessage());
}
/*modifier un evenement*/
$req=$bdd->query('select * from evenement');
if($req)
{
?>
<html>
<table border="2px red ">
<h1>liste des événements<h1/>
<tr>
<th>administrateur(login)</th>
<th>titre evenement</th>
<th>contenu evenement</th>
<th>lieu evenement</th>
<th>Date evenement</th>
<th></th>
</tr>
<?php
while ($entree=$req->fetch()) //tant qu'il y'a une entrée à lire
{
echo"<tr>"; //1ere ligne
echo"<td>";
echo $entree['login'];
echo"</td>";
echo"<td>";
echo $entree['titre_evenement'];
echo"</td>";
echo"<td>";
echo $entree['contenu_evenement'];
echo"</td>";
echo"<td>";
echo $entree['lieu_evenement'];
echo"</td>";
echo"<td>";
echo $entree['date_evenement'];
echo"</td>";
echo"<td>";
?>
<html>
<a href="recuperer.php?titre=<?php echo $entree['titre_evenement'];?>&id=<?php echo $entree['id_evenement'];?>" >modifier</a>
</html>
<?php
echo"</td>";
echo"<tr/>";
}
?>
</html>
</table>
<?php
}
else
echo'table vide';
?> |
quand on clique sur modifier pour un événement x, on se branche vers la page
nv_modification.php, qui affiche un formulaire pour une nouvelle saisie de l’élément choisi à être modifier.
on saisit les nouvelles modification, on appelle la fonction UPDATE qui va modifier notre événement x, en précisant son id, OR cet id est récupérer juste par $_GET['id'] ,
alors que dans le formulaire de la saisie de nouvelles modifications, on travaille avec POST,
et on me signale une erreur au niveau de la requete UPDATE:
la variable id est indéfinie!!!!!
je donne le script de la page nv_modification.php qui contient le formulaire de la nouvelle saisie de l’événement à modifier:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| <html>
<fieldset>
<legend>nouvelle saisie </legend>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<!-- style="display:block;width:300px;" pour aligner le formulaire-->
<label style="display:block;width:300px;" for="nvtitre">nouveau titre</label>
<input type="text" name="nvtitre" id="nvtitre" /><br/>
<label style="display:block;width:300px;" for="nvcontenu">nouveau contenu</label>
<textarea name="nvcontenu" id="nvcontenu" rows="2" cols="30"> </textarea><br/>
<label style="display:block;width:300px;" for="nvlieu">nouveau lieu</label>
<input type="text" name="nvlieu" id="nvlieu" /><br/>
<label style="display:block;width:300px;" for="date">nouvelle date</label>
<input type="date" name="nvdate" id="nvdate" /><br/>
<input style="display:block;width:300px; " type="submit" value="valider les modifications" name="BT_valider"/>
</form>
</fieldset>
</html>
<!-- script de BT_modifier-->
<?php
try
{
$bdd=new PDO('mysql:host=localhost;dbname=verts_maroc', 'root', '');
}
catch(Exception $e)
{
die('erreur:' .$e->getMessage());
}
if (isset($_POST['BT_valider'])&& isset($_POST['nvtitre']) && isset($_POST['nvcontenu']) &&
isset($_POST['nvlieu']) && isset($_POST['nvdate']) )
{
/*enregistrer les modifications de l'evenement concerné*/
$req=$bdd->prepare('UPDATE evenement SET
titre_evenement=:nvtitre,
contenu_evenement=:nvcontenu,
lieu_evenement=:nvlieu,
date_evenement=:nvdate
WHERE id_evenement=:idevenement');
$req->execute(array(
'nvtitre' => $_POST['nvtitre'],
'nvcontenu' => $_POST['nvcontenu'],
'nvlieu' => $_POST['nvlieu'] ,
'nvdate' => $_POST['nvdate'] ,
'idevenement' => $_GET['id'] ));
if ($req)
echo "votre modification est prise en compte!";
else
echo "problème de requete!!!!";
}
?> |
j'ai utilisé les sessions, mais on permit que garder l'id de l'événement choisi à être modifier le 1er, si on veut modifier un autre événement, on a que l'id de l'ancien événement modifié!!!!
svp, vous avez une solution pour mon problème!!
merci pour votre compréhension