Modification de données
Résolu
mocoye
Messages postés
73
Date d'inscription
Statut
Membre
Dernière intervention
-
mocoye Messages postés 73 Date d'inscription Statut Membre Dernière intervention -
mocoye Messages postés 73 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila je me remets au PHP après quelques années et je suis rouillée, je souhaite dans la partie admin de mon site, permettre la modification de données, j'ai crée une première page qui permet via un formulaire de recenser les entrées d'une de mes tables,
jusqu'à la ça fonctionne, en revanche après avoir fait ma modification et cliqué sur envoyer je reviens vers ma page initiale sans aucune modification, bien entendu j'ai demandé la modification sur une page intermédiaire
mais ca ne fonctionne pas je ne vois l'erreur, si quelqu'un peut m'aider ce serait génial.
Merci
Voila je me remets au PHP après quelques années et je suis rouillée, je souhaite dans la partie admin de mon site, permettre la modification de données, j'ai crée une première page qui permet via un formulaire de recenser les entrées d'une de mes tables,
<?php include("include/bdd.inc.php"); ?> <?php $req = $bdd->prepare('SELECT * FROM fiches_pratiques WHERE id= ?') or die(print_r ($bdd->errorInfo())); $req->execute(array($_GET['id'])); ?> <form action="modif_fp2.php" id="form" method="post" enctype="multipart/form-data" > <table> <?php while ($donnees = $req->fetch()) { ?> <tr> <td width="119" class="tit_champ">NUMERO</td> <td width="423"><input name="numero" type="text" id="nom" class="txt_champ" value="<?php echo $donnees['numero']; ?>" /></td> </tr> <tr> <td width="119" class="tit_champ">NOM</td> <td width="423"><input name="nom" type="text" id="nom" class="txt_champ" value="<?php echo $donnees['nom']; ?>"/></td> </tr> <tr> <td width="119" class="tit_champ">THEME</td> <td width="423"><input name="theme" type="text" id="nom" class="txt_champ" value="<?php echo $donnees['theme']; ?>"/></td> </tr> <tr> <td width="119" class="tit_champ">ACTIF</td> <td class="champfichier"><input name="actif" type="checkbox" id="actif" <?php if($donnees["actif"]==1){echo "checked=\"checked\"";}?>/></td> </tr> <tr> <td><input name="id_masque" type="hidden" value="<?php echo $donnees['id']; ?>" /></td> <td><input name="envoyer" type="image" src="design/envoyer.png" value="envoyer" /></td> </tr> <?php } $req->closeCursor(); ?> </table> </form>
jusqu'à la ça fonctionne, en revanche après avoir fait ma modification et cliqué sur envoyer je reviens vers ma page initiale sans aucune modification, bien entendu j'ai demandé la modification sur une page intermédiaire
<?php include("include/bdd.inc.php"); ?> <?php $id=addslashes($_POST["id_masque"]); $numero=addslashes($_POST["numero"]); $nom=addslashes($_POST["nom"]); $theme=addslashes($_POST["theme"]); if(isset($_POST["actif"])){ echo $actif=1 ; } else { echo $actif=0; } $req = $bdd->prepare('UPDATE fiches_pratiques SET numero = :numero, nom = :nom, theme = :theme, actif = :actif WHERE id = :id'); $req->execute(array( 'numero' => $numero, 'nom' => $nom, 'theme' => $theme, 'actif' => $actif )); header("location:fiches_pratiques.php"); ?>
mais ca ne fonctionne pas je ne vois l'erreur, si quelqu'un peut m'aider ce serait génial.
Merci
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Modification de données
- Fuite données maif - Guide
- Suivi de modification word - Guide
- Supprimer les données de navigation - Guide
- Logiciel gratuit modification pdf - Guide
- Trier des données excel - Guide
1 réponse
Bonjour,
Prends l'habitude de séparer les requêtes ainsi que les variables associées de l'exécution de la requête.
Pense également à mettre ton code dans un bloc try/catch pour intercepter les éventuelles erreurs.
Par exemple :
pour "trapper" les éventuelles erreurs PHP tu peux aussi ajouter au début de tes pages PHP l'instruction :
NB : on n'utilise plus le OR DIE ... mais on préfèrera les TRY/CATCH.
Prends l'habitude de séparer les requêtes ainsi que les variables associées de l'exécution de la requête.
Pense également à mettre ton code dans un bloc try/catch pour intercepter les éventuelles erreurs.
Par exemple :
$sql = 'UPDATE fiches_pratiques SET numero = :numero, nom = :nom, theme = :theme, actif = :actif WHERE id = :id'; $a_datas = array( 'numero' => $numero, 'nom' => $nom, 'theme' => $theme, 'actif' => $actif ); try{ $req = $bdd->prepare($sql); $resultat = $req->execute($a_datas); }catch(Exception $e){ echo "Erreur ! ".$e->getMessage(); echo "Requete : ".$sql; echo "Variables : <br><pre>"; print_r($a_datas); echo "'</pre>"; exit(); // remplace le "die" } if($resultat){ //si pas de souci dans la requête... redirection ! header("location:fiches_pratiques.php"); }
pour "trapper" les éventuelles erreurs PHP tu peux aussi ajouter au début de tes pages PHP l'instruction :
error_reporting(E_ALL);
NB : on n'utilise plus le OR DIE ... mais on préfèrera les TRY/CATCH.
Tout d'abord merci pour ta réponse, que j'ai mis en application, malheureusement voici le message que la page m'affiche.
j'ai copié/collé ton code et l'ai mis à la place du mien de cette façon :
A écrire comme ça de préférence :
Alors j'ai mis le nouveau code que tu m'as fourni avant le précédent et j'ai le message suivant qui apparait :
ci-dessous le code de la page "modif_fp2.php"
Merci encore pour ton aide,
Essayes avec :
</code>