par
Invité » 29 mars 2010, 11:13
Bonjour à tous,
Je suis confronté à un phénomène quelque peu bizarre depuis vendredi.
Je cherche à en comprendre la cause.
Dans un module d'administration j'effectue une action destinée à supprimer un élément de ma base de données.
Petit plus facultatif, j'aurai souhaité qu'un message de confirmation indique "L'élément xxx a bien été supprimé".
Pour afficher xxx, j'effectue donc dans un premier temps une requête SELECT classique pour récupérer les informations de l'élément destiné à être supprimer. Je stocke le nom de l'élément dans une variable $titre, puis j'effectue ma requête DELETE pour supprimer mon élément.
Mais à ma grande surprise, $titre est vide. Comme si mon DELETE passait avant mon SELECT.
J'ai tenté de tourner mon code de différentes manières sans jamais arriver à, à la fois afficher le titre de l'élément, et supprimer ce même élément ensuite.
Si quelqu'un a des infos sur l'ordre des requêtes SQL dans un fichier PHP pour essayer de m'éclairer sur ce phénomène que je ne m'explique pas.
Code : Tout sélectionner
if(isset($_GET['id']) && is_numeric($_GET['id'])){ //vérifie que je lui passe bien une id numérique en paramètre d'url
$result = mysql_query("SELECT * FROM `actualites` WHERE id='".$_GET['id']."'");
$row_affiche = mysql_fetch_array($result_affiche);
$titre = $row_affiche['titre']; //sensé stocker le titre de l'élément à supprimer
echo $titre; //sans exécuter le DELETE ci-dessous, il m'affiche bien le titre. Dès que le DELETE est actif, alors $titre retourne une chaîne vide.
}
$result_suppr = mysql_query("DELETE FROM `actualites` WHERE id='".$_GET['id']."'");
if ($result_suppr){
echo "L'élément '".$titre."' a bien été supprimé."; //Même constat que plus haut : sans exécuter le DELETE ci-dessus, il m'affiche bien le titre. Dès que le DELETE est actif, alors $titre retourne une chaîne vide.
}else{
echo "Problème.";
}
Pour info, je n'ai pas testé en ligne, je suis encore en local avec EasyPHP, est-ce que cela aurait une conséquence ? Je ne pense pas.
Merci d'avoir pris le temps de lire mon problème et merci pour votre contribution.
Pixéo.