Amélioration requête SQL DELETE

Résolu
Potame137 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38480 Date d'inscription   Statut Modérateur Dernière intervention   - 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 38480 Date d'inscription   Statut Modérateur Dernière intervention   4 746
 
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