modifier ou supprimer une entrée dans une bdd mysql

Eléphanteau du PHP | 13 Messages

01 févr. 2007, 21:20

bonjour je suis en train de creer la partie admin d'un site et je voudrais que l'administrateur puisse modifier les infos d'un produit dans la table ou totalement supprimer le produit. j'ai donc une page qui liste les produit, une page qui permet de modifier les infos et une page qui permet de supprimer une entrée. Le problème c'est que quand je lance la requette pour modifier ou supprimer une entrée, ca ne parche pas, je reviens bien sur la page liste mais la table n'est pas modifiée....
je vous laisse mon code:
page modifier:
<?php
require("connection.inc.php");
mysql_select_db($base)or die("erreur sql".mysql_error());
//on démarre la session
session_start();
//s'il n'existe pas de variable de session login on redirrige l'internaute sur la page index_admin.php
if(!isset($_SESSION['login'])){header('Location:index_admin.php');}
$requete="SELECT * FROM produits ORDER BY nom ASC"; 
$resultat=mysql_query($requete)or die("erreur sql".mysql_error());
$titrepage="modifier";
//////////////////////////////////////////////////////////////////////////////////////////////
if(!isset($_POST['envoi'])){
$requete_affichage="SELECT*FROM produits WHERE id =".$_GET['id'];
$resultat_affichage=mysql_query($requete_affichage)or die("erreur sql".mysql_error());
$ligne=mysql_fetch_array($resultat_affichage)or die("erreur sql".mysql_error());
}
////////////////////////////////////////////////////////////////////////////////////////////////////
if(isset($_POST['envoi'])){
	$nom=slashAuCasOu($_POST['nom']);
	$description=slashAuCasOu($_POST['description']);
	$ref=slashAuCasOu($_POST['ref']);
	$taille=$_POST['taille'];
	$photo=$_POST['photo'];
	$envoi=$_POST['envoi'];
	$requete_modif="UPDATE produits SET nom='$nom', description = '$description', ref = '$ref', taille='$taille', photo='$photo' WHERE id=".$_POST['id'];
	mysql_query($requete_modif)or die("erreur sql".mysql_error());
	header("Location:../modifSupprim_produits.php");
}
?>

Code : Tout sélectionner

<div id="contenu"> <div class="objetpage"><?php echo $titrepage ?></div> <form id="addproduit" name="addproduit" action="<? echo $_SERVER['PHP_SELF'] ?>" method="post"> <input type="hidden" name="cache" id="cache" value="<?php echo $ligne['id'] ?>" /> Nom: <p><input type="text" name="nom" id="nom" width="50px" value="<?php echo $ligne['nom']?>" /></p> Ref:<p><input type="text" name="ref" id="ref" width="30px" value="<?php echo $ligne['ref']?>" /></p> Description: <p><textarea name="description" id="description" cols="50" rows="5" value="<?php echo $ligne['description'] ?>"></textarea></p> Prix: <p><input type="text" name="prix" id="prix" size="30px" value="<?php echo $ligne['prix']?>" /></p> <input type="submit" value="envoi" name="envoyer" id="envoyer" /> </form> </div>


et le code de la page supprimer:
<?php 
require ('connection.inc.php');
include ('fonctions.inc.php');
mysql_select_db($base)or die("erreur sql".mysql_error());
//on démarre la session
session_start();
//s'il n'existe pas de variable de session login on redirrige l'internaute sur la page index_admin.php
if(!isset($_SESSION['login'])){header('Location:index_admin.php');}
$requete_affichage="SELECT*FROM produits WHERE id =".$_GET['id'];
echo $requete_affichage.'</br>';
$resultat_affichage=mysql_query($requete_affichage)or die("erreur sql".mysql_error());
echo $resultat_affichage.'</br>';
$ligne=mysql_fetch_array($resultat_affichage)or die("erreur sql".mysql_error());
echo $ligne.'</br>';
if(isset($_POST['suppr'])){
	$supprim='DELETE * FROM produits WHERE id='.$_POST['id'];
	echo $supprim.'</br>';
};
?>

Code : Tout sélectionner

<div id="contenu"> <div class="ligne"> <div class="info">Nom: <?php echo $ligne['nom'] ?></div> <div class="info">Ref&eacute;rence: <?php echo $ligne['ref'] ?></div> </div> <div class="ligne"> <div class="infolarge">Description: <?php echo $ligne['description'] ?></div> </div> <div class="ligne"> <div class="info">Taille: <?php echo $ligne['taille'] ?></div> <div class="info">Prix: <?php echo $ligne['prix'] ?></div> </div> <div class="ligne"> <div class="infolarge">Photo: <?php echo $ligne['photo'] ?></div> </div> <div> <form name="supprimer" action="modifSupprim_produits.php" method="post"> <input type="submit" value="supprimer" name="suppr" /> </form> </div>
j'ai vérifié le nom des champs de la table mais tout correspond. En plus
je n'ai aucun message d'erreur donc je ne comprend pas bien ce qui se passe. :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 févr. 2007, 12:12

if(isset($_POST['envoi'])) ... ton formulaire ne contient pas de champ nommé "envoi", cette condition est toujours fausse ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...