Bonjour,
Pour modifier un evenement, j'ai un formulaire, celui ci rappelle pourtant le bon ID
Mais quand je clique sur envoyer, en fait il insère une nouvelle entrée dans la table
Décriez ici votre code ou ce que vous cherchez à faire
<?php
$mode_edition = 0;
if(isset($_GET['edit']) AND !empty($_GET['edit'])) {
$mode_edition = 1;
$edit_id = htmlspecialchars ($_GET['edit']);
$edit_evenement = $bdd->prepare('SELECT * FROM evenement WHERE id = ?');
$edit_evenement->execute(array($edit_id));
if($edit_evenement->rowCount() == 1) {
$edit_evenement = $edit_evenement->fetch();
} else{
die('Erreur : L\'evenement n\'existe pas...');
}
}
if(isset($_POST['nom_evenement'], $_POST['evenement_lieu'], $_POST['evenement_descriptif'])) {
if(!empty($_POST['nom_evenement']) AND !empty($_POST['evenement_lieu'])AND !empty($_POST['evenement_descriptif'])){
$nom_evenement = htmlspecialchars($_POST['nom_evenement']);
$evenement_lieu = htmlspecialchars($_POST['evenement_lieu']);
$evenement_descriptif = htmlspecialchars($_POST['evenement_descriptif']);
if($mode_edition == 0) {
$ins = $bdd->prepare('INSERT INTO evenement (nom_evenement, lieu, descriptif, date_time_publication)VALUES ( ?, ?, ?, NOW())');
$ins->execute(array($nom_evenement, $evenement_lieu, $evenement_descriptif));
$message = 'Votre evenement a bien été ajouter';
} else {
$update = $bdd->prepare('UPDATE evenement SET nom_evenement = ?, lieu = ?, descriptif = ?, date_time_edition = NOW() WHERE id =?');
$update->execute(array($nom_evenement, $evenement_lieu, $evenement_descriptif, $edit_id));
header('Location:http://localhost/michel/administration/index.php?id='.$edit_id);
$message = 'Votre evenement a bien été mis a jour';
}
var_dump($$update);
}else{
$message = 'Veuillez remplir tous les champs';
}
}
?>tourez votre code pour bien le mettre en forme
J'ai essayé quelques var dump( $edit_evenement) ;renvoi string avec les entrées
var dump( $update); renvoi NULL
Si quelqu'un pouvez me guider ça serait sympa....
Cordialement
André
Bonsoir, ouic'est normal si j'ai bien suivi le tuto, le premier verifie pour la modification( $mode_edition = 1;)
<a href="redaction.php?edit=<?php echo $a['id']?>">Modifier</a>
le segond verifie les entrées envoyer par le formulaire, ....
Je te remercie mais ça fonctionne maintenant, je ne sais pas pourquoi....Par contre mon header pour la redirection ne fonctionne pas?
Merci
Bonsoir.
Par contre mon header pour la redirection ne fonctionne pas?
Quel est l'intérêt de faire une redirection alors que juste après tu définis une valeur à une variable qui sera perdue une fois la redirection faite ?
Sinon pour que ta redirection se fasse, il te faut couper la suite du script PHP, soit par exemple avec un exit
ou un die
juste après ton appel à la fonction header
.
Si tu veux pouvoir faire persister des données après une redirection, il te faut par exemple utiliser la session, faire un genre de message flash en gros, exemple :
$_SESSION['flash'] = 'Votre évènement a bien été mis a jour';
// ton header de redirection ici ...
exit;
Par contre, il y a quelque chose que j'ai du mal à comprendre, tu fais une redirection sur une page index.php
en lui passant l'id
de l'enregistrement édité alors qu'à priori la page qui permet d'éditer elle se nomme redaction.php
.
J'ai quand même du mal à comprendre ton concept.
Sinon, tu parles d'un tuto, mais duquel parles-tu ?
Bonsoir,
Quel est l'intérêt de faire une redirection alors que juste après tu définis une valeur à une variable qui sera perdue une fois la redirection faite ...Oui j'ai remplacé ça...
header('Location:http://localhost/michel/administration/index.php?id='.$edit_id);
par
header('Location:http://localhost/michel/administration/index.php');
ça fonctionne et en y regardant de plus prêt, c'est logique ....
J'ai quand même du mal à comprendre ton concept.
Le concept s'il y en a un!!! j'ai une page
index.php
Adminisration
redaction_evenement.php
index.php
Le formulaire qui est dans redaction_evenement sert pour la publication et l'edition des evenements, c'est pourquoi une fois le formulaire envoyer je souhaite revenir à administration/index.php ou j'ai un petit tableau avec les liens modifier et supprimer...
Je ne sais pas si c'est cohérent mais ça fonctionne, une chose me chagrine le formulaire n'a pas d'action, si je met la page redaction_evenement impossible de mettre a jour un evenement, car il y a une boucle dans administration/index.php et du coup il faudrait appeler 2 pages dans action...
<form method="POST"> sans action je ne sais si c'est correct?
<?php while($a =$evenements->fetch()) { ?>
<li><a href="redaction_evenement.php?id=<?php echo $a['id']?>"></a><?php echo $a['nom_evenement']?>
| <a href="redaction_evenement.php?edit=<?php echo $a['id']?>">Modifier</a>
Merci pour toutes les réflexions
André