Supprimer une ligne dans la base donnée
jobouille
Messages postés
356
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour à tous !
J'ai créer un petit chat et j'aimerais qu'un bouton "Supprimer" apparaissent permettant de supprimer le message.
J'ai donc fait ceci :
La redirection vers delete_msg.php avec l'id fonctionne correctement.
Voici la page delete_msg.php qui, elle, ne fonctionne pas très bien car le message ne se supprime pas :
Je débute en php donc si vous pourriez éventuellement écrire les lignes de codes qu'il faudrait ce serait juste parfait :D
Merci et bonne journée
J'ai créer un petit chat et j'aimerais qu'un bouton "Supprimer" apparaissent permettant de supprimer le message.
J'ai donc fait ceci :
<a href="delete_msg.php?id=<?php echo $msg['id'];?>" class="supprimer">Supprimer</a>
La redirection vers delete_msg.php avec l'id fonctionne correctement.
Voici la page delete_msg.php qui, elle, ne fonctionne pas très bien car le message ne se supprime pas :
<?php
session_start();
$bdd = new PDO('mysql:host=localhost;dbname=espace_membre', 'root', '');
$delMsg = $bdd->prepare('DELETE FROM chat WHERE id="$id');
$delMsg->execute(array($id));
header("Location:chat.php");
?>
Je débute en php donc si vous pourriez éventuellement écrire les lignes de codes qu'il faudrait ce serait juste parfait :D
Merci et bonne journée
A voir également:
- Supprimer une ligne dans la base donnée
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page dans word - Guide
- Partager photos en ligne - Guide
- Comment supprimer une ligne dans un tableau word - Guide
- Aller à la ligne dans une cellule excel - Guide
5 réponses
Bonjour,
Je ne pratique pas le php. Mais la logique de tes simples quotes et double quotes n'est informatiquement pas correcte :-)
Tu as une double quote devant $id qui n'a pas son pendant fermant.
cdlt
Je ne pratique pas le php. Mais la logique de tes simples quotes et double quotes n'est informatiquement pas correcte :-)
'DELETE FROM chat WHERE id="$id');
Tu as une double quote devant $id qui n'a pas son pendant fermant.
cdlt
Je viens d'enlever les double quote, ce qui donne ceci :
Mais le problème persiste toujours : le message ne se supprime pas :/
$delMsg = $bdd->prepare('DELETE FROM chat WHERE id=$id');
Mais le problème persiste toujours : le message ne se supprime pas :/
Tu devrais regarder : https://stackoverflow.com/questions/1569610/delete-from-table-where-id-id-variable-refuses-to-stick c'est aussi une question, donc avec aussi un problème mais ...
Il semble qu'il faille definir la variable localement avant de l'utiliser, plus les quotes sont à l'inverse de toi.
Et chose importante, quand on programme, on doit gérer les erreurs. C'est à dire que le code en cas d'anomalie doit d'envoyer un message. Sur le lien plus haut cela me semble répondre à cette logique.
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
Il semble qu'il faille definir la variable localement avant de l'utiliser, plus les quotes sont à l'inverse de toi.
Et chose importante, quand on programme, on doit gérer les erreurs. C'est à dire que le code en cas d'anomalie doit d'envoyer un message. Sur le lien plus haut cela me semble répondre à cette logique.
Un étranger, c'est un ami qu'on n'a pas encore rencontré.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Premier souci ...
Où recupères tu $id dans ton code ?
Ensuite.... sorts la requête de son exécution... ainsi tu peux en faire une ECHO et la tester en direct dans ta BDD histoire de comprendre où se trouve le PB ...
Donc :
Où recupères tu $id dans ton code ?
Ensuite.... sorts la requête de son exécution... ainsi tu peux en faire une ECHO et la tester en direct dans ta BDD histoire de comprendre où se trouve le PB ...
Donc :
<?php
session_start();
// Connexion à la BDD
// (A mettre dans un fichier à part que tu auras juste à inclure au besoin ! )
$bdd = new PDO('mysql:host=localhost;dbname=espace_membre', 'root', '');
// Récupération des variables:
$id = isset($_GET['id'])?$_GET['id']:NULL;
// Traitement :
if($id){
$sql = "DELETE FROM chat
WHERE id=':id'";
$param =array(":id"=>$id);
$delMsg = $bdd->prepare($sql);
$result = $delMsg->execute($param);
if($result){
header("Location:chat.php");
}else{
echo "<pre> ERREUR !<br>";
print_r($sql);
print_r($param);
echo "</pre>";
}
}else{
echo "<br> NO ID !";
}
?>
J'ai mit le code que vous venez de me donner dans delete_msg.php
Ensuite, j'ai mit ce bouton qui apparaît dans chaque message posté :
Et voilà ce qui se passe lorsqu'on clic sur le bouton "envoyer" pour envoyer notre message :
Merci
PS: à noter qu'il y a 3 pages php pour ce chat :
- La page place_du_village.php où se trouve le code php ci dessus pour envoyer un message.
- La page chat.php qui est inclu via un iframe dans place_du_village.php
- Et enfin la page delete_msg.php qui, j'espère, permettra de supprimer un message.
Ensuite, j'ai mit ce bouton qui apparaît dans chaque message posté :
<a href="delete_msg.php" class="supprimer">Supprimer</a>
Et voilà ce qui se passe lorsqu'on clic sur le bouton "envoyer" pour envoyer notre message :
if(isset($_POST['envoyer']))
{
if(isset($_POST['message']) AND !empty($_POST['message']))
{
$id = htmlspecialchars($msg['id']);
$avatar = htmlspecialchars($user['avatar']);
$pseudo = htmlspecialchars($user['pseudo']);
$message = nl2br(htmlspecialchars($_POST['message']));
$grade = htmlspecialchars($user['grade']);
$idmembre = htmlspecialchars($user['id']);
$date = date("d-m-Y");
$heure = date("H:i:s");
$insertmsg = $bdd->prepare('INSERT INTO chat(id, avatar, pseudo, message, grade, idmembre, date, heure) VALUES(?, ?, ?, ?, ?, ?, ?, ?)');
$insertmsg->execute(array($id, $avatar, $pseudo, $message, $grade, $idmembre, $date, $heure));
header ('Location: place_du_village.php');
}
}
Merci
PS: à noter qu'il y a 3 pages php pour ce chat :
- La page place_du_village.php où se trouve le code php ci dessus pour envoyer un message.
- La page chat.php qui est inclu via un iframe dans place_du_village.php
- Et enfin la page delete_msg.php qui, j'espère, permettra de supprimer un message.
Ensuite, j'ai mit ce bouton qui apparaît dans chaque message posté :
Non .. tu devrais avoir la même chose que dans ta question initiale ... à savoir :
<a href="delete_msg.php?id=<?php echo $msg['id'];?>" class="supprimer">Supprimer</a>
comme tu peux le voir... dans ce code... on passe un argument en GET ... l' ID ....
C'est grâce à ça... que le code que je t'ai donné peut fonctionner !