un script pour supprimer des enregistrements dans une table qui tourne à vide

Répondre
musatge
le 30/06/2009 à 08:41
musatge
Bonjour
Merci pour ce site très bien conçu.
J'ai utilisé un script pour supprimer des enregistrements dans une table "utilisateurs". Ce script fonctionne. Par contre j'ai voulu l'adapter pour faire la même chose avec une table "stages", le script me renvoie sur la page "stage_supprimer.php" sans avoir rien supprimer et sans message d'erreur. Cela fait un moment que je cherche mais sans succès.
Le script en cause:
stage_supprimer.php
<?php
require_once('includes/session_start.php');
require_once('includes/private.php');
// ------ SUPPRESSION D'UN stage --------

// on fait la requête sur tous les stages de la base (on fait un tri par date)

require_once('includes/connexion.php');
mysql_select_db($basededonnees, $connexion);

$query_stages = "SELECT * FROM stages ORDER BY dateDebut ASC"; // ORDER BY renvoi les données triées

$stages = mysql_query($query_stages, $connexion) or die(mysql_error());

$row_stages = mysql_fetch_assoc($stages);


if(isset($_POST['suppr']) && ($_POST['suppr'] != "1"))
{ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)

$id = $_POST['suppr'];

$delete_stage = sprintf("DELETE FROM stages WHERE id='$id'");

mysql_select_db($basededonnees, $connexion);

$result = mysql_query($delete_stage, $connexion) or die(mysql_error());
mysql_close ();

header("Location:stage_supprimer.php?delete=ok"); // url qui servira pour afficher le message de réussite

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="fr-FR" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>nuage~pluie: authentification</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"">
<meta name="robots" content="index, follow">
<link rel="shortcut icon" href="" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="../css/style.css" media="screen" />
<link rel="stylesheet" type="text/css" href="../css/menu_admin.css" media="screen" />
<link rel="stylesheet" type="text/css" href="../css/formulaire.css" media="screen" />
<script type="text/javascript" src="../js/jquery.js"></script>

<script type="text/javascript" src="../js/custom.js"></script>
</head>
<body>
<?php include '../include/tete.php'; ?>
<div class="conteneur troiscol">
<div class="colonne_milieu">
<div class="colonne_gauche">
<div class="col1">
<h2>Supprimer un stage</h2>
<p></p>

<form action="" method="post" name="suppr">

<fieldset>
<legend>Liste</legend>
<p><label for="suppr">stage</label>

<select name="suppr" id="select2">

<?php do { ?>

<option value="<?php echo $row_stages['id']?>">

<?php echo $row_stages['dateDebut']." ".$row_stages['intitule']." " ?>

</option>

<?php

} while ($row_stages = mysql_fetch_assoc($stages));

$rows = mysql_num_rows($stages);

if($rows > 0)
{ mysql_data_seek($stages, 0);

$row_stages = mysql_fetch_assoc($stages);

}

?>

</select>

<input name="verif" type="hidden" id="verif">
</p>
</fieldset>

<p><input type="submit" name="Submit2" value="Supprimer ce stage"></p>

</form>
</div>

<div class="col2">
<?php if($_SESSION['privilege'] == "administrateur")
{ include 'includes/menu_stages.php'; }

if($_SESSION['privilege'] != "administrateur")
{ ?> <h4>Vous n'avez pas les droits pour administrer les stages</h4> <?php } ?>
</div>
<div class="col3">
<?php if(isset($_GET['delete']) && ($_GET['delete'] == "ok"))
{ ?> <h4>Le stage a &eacute;t&eacute; supprim&eacute; avec succ&egrave;s</h4> <?php } ?>

<?php if(isset($_POST['verif']) && (!isset($_POST['suppr'])))
{ ?> <h4>Veuillez s&eacute;lectionner un stage &agrave; supprimer</h4> <?php } ?>

<?php if(isset($_POST['suppr']) && ($_POST['suppr'] == "1"))
{ ?> <?php } ?>
</div>
</div>
</div>
</div>
<?php include '../include/pied.php'; ?>
</body>
</html>

Si quelqu'un a une idéee ?
Merci
musatge
LA GLOBULE
le 30/06/2009 à 12:36
LA GLOBULE
Que contient $_POST['suppr'] quand tu soumets le formulaire ?
A mon avis, tu ne rentres pas dans ton if.

Sinon, as tu vérifié que tes <option> prenaient bien une valeur pour l'attribut value ?
musatge
le 30/06/2009 à 14:28
musatge
Merci LA GLOBULE
Parfois une petite phrase débloque la situation, le premier script dont je mettais inspiré protégait le premier enregistrement qui contenait les référence de l'administrateur.
musatge
musatge
le 30/06/2009 à 14:32
musatge
Merci LA GLOBULE
Parfois une petite phrase débloque la situation, le premier script dont je mettais inspiré protégait le premier enregistrement qui contenait les référence de l'administrateur.
J'ai donc supprimé
&& ($_POST['suppr'] == "1")
ce qui donne:
stage_supprimer.php?delete=ok
<?php

require_once('includes/session_start.php');
require_once('includes/private.php');
// ------ SUPPRESSION D'UN stage --------

// on fait la requête sur tous les stages de la base (on fait un tri par date)

require_once('includes/connexion.php');
mysql_select_db($basededonnees, $connexion);

$query_stages = "SELECT * FROM stages ORDER BY dateDebut ASC"; // ORDER BY renvoi les données triées

$stages = mysql_query($query_stages, $connexion) or die(mysql_error());

$row_stages = mysql_fetch_assoc($stages);


if(isset($_POST['suppr']))
{ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)


$id = $_POST['suppr'];

$delete_stage = sprintf("DELETE FROM stages WHERE id='$id'");

mysql_select_db($basededonnees, $connexion);

$result = mysql_query($delete_stage, $connexion) or die(mysql_error());
mysql_close ();

header("Location:stage_supprimer.php?delete=ok"); // url qui servira pour afficher le message de réussite

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="fr-FR" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>nuage~pluie: authentification</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"">
<meta name="robots" content="index, follow">
<link rel="shortcut icon" href="" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="../css/style.css" media="screen" />
<link rel="stylesheet" type="text/css" href="../css/menu_admin.css" media="screen" />
<link rel="stylesheet" type="text/css" href="../css/formulaire.css" media="screen" />
<script type="text/javascript" src="../js/jquery.js"></script>

<script type="text/javascript" src="../js/custom.js"></script>
</head>
<body>
<?php include '../include/tete.php'; ?>
<div class="conteneur troiscol">
<div class="colonne_milieu">
<div class="colonne_gauche">
<div class="col1">
<h2>Supprimer un stage</h2>
<p></p>

<form action="" method="post" name="suppr">

<fieldset>
<legend>Liste</legend>
<p><label for="suppr">stage</label>

<select name="suppr" id="select2">

<?php do { ?>

<option value="<?php echo $row_stages['id']?>">

<?php echo $row_stages['dateDebut']." ".$row_stages['intitule']." " ?>

</option>

<?php

} while ($row_stages = mysql_fetch_assoc($stages));

$rows = mysql_num_rows($stages);

if($rows > 0)
{ mysql_data_seek($stages, 0);

$row_stages = mysql_fetch_assoc($stages);

}

?>

</select>

<input name="verif" type="hidden" id="verif">
</p>
</fieldset>

<p><input type="submit" name="Submit2" value="Supprimer ce stage"></p>

</form>
</div>

<div class="col2">
<?php if($_SESSION['privilege'] == "administrateur")
{ include 'includes/menu_stages.php'; }

if($_SESSION['privilege'] != "administrateur")
{ ?> <h4>Vous n'avez pas les droits pour administrer les stages</h4> <?php } ?>
</div>
<div class="col3">
<?php if(isset($_GET['delete']) && ($_GET['delete'] == "ok"))
{ ?> <h4>Le stage a &eacute;t&eacute; supprim&eacute; avec succ&egrave;s</h4> <?php } ?>

<?php if(isset($_POST['verif']) && (!isset($_POST['suppr'])))
{ ?> <h4>Veuillez s&eacute;lectionner un stage &agrave; supprimer</h4> <?php } ?>

<?php if(isset($_POST['suppr']))
{ ?> <?php } ?>
</div>
</div>
</div>
</div>
<?php include '../include/pied.php'; ?>
</body>
</html>
musatge
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours