Amélioration requête SQL DELETE

Résolu/Fermé
Potame137 Messages postés 32 Date d'inscription lundi 23 mai 2016 Statut Membre Dernière intervention 17 août 2020 - Modifié le 10 août 2020 à 01:35
jordane45 Messages postés 38470 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 avril 2025 - 10 août 2020 à 13:10
Bonjour,
Existe-t-il un moyen plus "simple" pour que quand j'appuie sur le bouton "supprimer", celui-ci supprime le post sélectionné ? Car j'ai créé un bouton mais pour qu'il supprime le poste il lui faut une valeur entre 1 et 0 actuellement. J'aimerais faciliter ceci.
Voici un extrait du code :

post.fuc.php


<?php

function get_post(){

global $db;

$req = $db->query("
SELECT posts.id,
posts.title,
posts.image,
posts.date,
posts.content,
posts.posted,
admins.name
FROM posts
JOIN admins
ON posts.writer = admins.email
WHERE posts.id = '{$_GET['id']}'
");

$result = $req->fetchObject();
return $result;
}

// Permet d'édit un article
function edit($title,$content,$posted,$id){

// connexion a la bd
global $db;

// tableau pour la requête
$e = [
'title' => $title,
'content' => $content,
'posted' => $posted,
'id' => $id
];

// la requpete
$sql = "UPDATE posts SET title=:title, content=:content, date=NOW(),posted=:posted WHERE id=:id";
$req = $db->prepare($sql);
$req->execute($e);

}


// Permet delete un article
function delete($title,$content,$posted,$id){

// connexion a la bd
global $db;

// tableau pour la requête
$e = [
'title' => $title,
'content' => $content,
'posted' => $posted,
'id' => $id,

];

// la requpete
$sql = "DELETE FROM posts WHERE posted = 0";
$req = $db->prepare($sql);
$req->execute($e);
}


Merci de vos retours , cordialement.
A voir également:

1 réponse

jordane45 Messages postés 38470 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 avril 2025 4 742
10 août 2020 à 13:10
Bonjour,

Déjà... tu postes dans le forum mysql ... c'est donc que ta question concerne uniquement la requête SQL et pas le code php ??
donc, uniquement cette partie du code :
DELETE FROM posts WHERE  posted = 0

hors, pour juste cette ligne de code sql... je ne vois pas ce qu'on pourrait améliorer.......

Si, par contre, ta question cocnerne l'ensemble PHP + SQL ( déjà il aurait fallu poster dans le forum php !! ) là c'est autre chose...
C'est à dire que ta question concerne cette partie de ton code ?
// Permet delete un article
function delete($title,$content,$posted,$id){

    // connexion a la bd
    global $db;

    // tableau pour la requête
    $e = [
        'title'     => $title,
        'content'   => $content,
        'posted'    => $posted,
        'id'        => $id,

    ];

    // la requpete 
    $sql = "DELETE FROM posts WHERE  posted = 0";
    $req = $db->prepare($sql);
    $req->execute($e);
}


Code, qui, si tu avais appliqué les consignes présentes dans le lien que je t'ai déjà donné :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
devrait te retourner une erreur...

Je ne comprends, d'ailleurs pas, pourquoi passer autant de paramètres dans ta fonction...
pour supprimer, seul l' ID suffit...
function delete($id){

 $sql = "DELETE 
         FROM posts 
         WHERE id=:id";
 $datas = array(':id'=>$id);
 
  try{
    $req = $db->prepare($sql);
    $res = $req->execute($datas);
  }catch(Exception $e){
    echo " Erreur : " . $e->getMessage();
  }
  return !empty($res) ? $res : false; 
}


NB: A l'avenir, merci d'indiquer, dans les balises de code, le LANGAGE ( ici php ) concerné.
Merci de lire attentivement (et entièrement ! ) le contenu du lien suivant :
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code


1