8722 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

Je l'ai testé ça me retourne ça :
C:\wamp\www\Projets.php:229:
object(PDOStatement)[4]
public 'queryString' => string '
        DELETE projets, utilisateurs_particuliers 
        FROM projets 
        LEFT JOIN utilisateurs_particuliers 
            ON projets.ID_utilisateur = utilisateurs_particuliers.id 
        WHERE projets.reference = :essai
    ' (length=240)


je l'ai faite en BDD et affectivement ça marche, mais ça a supprimé aussi l'utilisateur, en fait le but étant de supprimer le projet choisis par l'utilisateur parmi les siens Smiley lol
Ah oui, faut que tu stocks l'exécution de la requête dans une variable et que tu var_dump() cette variable plutôt =>

$delete = $req->execute([':essai' => $essai]);
var_dump($delete);

Alors dans ce cas fait comme ça =>

DELETE projets
FROM projets
INNER JOIN utilisateurs_particuliers
    ON projets.ID_utilisateur = utilisateurs_particuliers.id
WHERE projets.reference = :essai

Ça ne devrait supprimer que la ligne dans "projets"
Modifié par Wazazaby (16 Apr 2020 - 15:56)
Si je comprend bien, ce que tu veux c'est supprimer un projet dans ta table "projets" en fonction de son id c'est bien ça ?

La variable $essai contient bien un id de projet ? Si c'est le cas, pourquoi faire une liaison sur "utilisateurs_particuliers" ?

Essaye avec LEFT JOIN au lieu de INNER JOIN, dernière chance Smiley sweatdrop
Les deux son lié Smiley ohwell
exemple :
user : lambda id=1
projets : 1 id_user=1
projets : 2 id_user=1
projets : 3 id_user=1

Après je sais pas si j'ai fait de la meilleure façon...

ça ne veut pas :|

Merci de l'aide Smiley cligne

je vais essayer cette "syntaxe" de ce code voir ce que ça donne :
DELETE FROM reponse WHERE id_question IN (SELECT id_question FROM question WHERE id_sondage=2);

Modifié par melER5 (16 Apr 2020 - 16:21)
De ce que je comprend, un projet appartient à un seul user, et un user peut avoir plusieurs projets ?

La, tu veux supprimer un projet en fonction de son id et vérifier que ce projet appartient bien à l'user en question ?

$essai contient un id user ou un id projet ?
Modifié par Wazazaby (16 Apr 2020 - 16:25)
Exactement Smiley smile

le user a son tableau de projet, il peut si il le veut, supprimer un projet, je dois donc récupérer l'id du projet en question =>OK, et vérifier qu'on va bien supprimer le siens en vérifiant que l'id du user, coresspond a l'"id_user" qui est dans la table projets

$essai contient l'id du projet
Modifié par melER5 (16 Apr 2020 - 16:28)
Je peux l'avoir comme ça :

$ID_utilisateur = $_SESSION['auth']->id;

Mais il faut bien la comparaison avec l'id_user qui est dans la table projets... Smiley ohwell

déjà un simple :
DELETE FROM projets


ça marche
Modifié par melER5 (16 Apr 2020 - 16:50)
Ah c'est mieux avec un id user !

Dans ce cas là tu peux tester ça :


if (isset($_POST['supprimer']) && !empty($_POST['nom_ref_cache'])) {
    $essai = $_POST['nom_ref_cache'];
    $req = $pdo->prepare("
        DELETE FROM projets
        WHERE reference = :essai
        AND id_user = :idUser
    ");

    try {
        $del = $req->execute([
            ':essai' => $essai, 
            ':idUser' => $_SESSION['auth']->id
        ]);

        var_dump($del);
    } catch (PDOException $e) {
        var_dump($e->getMessage());
    }
}

Modifié par Wazazaby (16 Apr 2020 - 16:57)
Meilleure solution
Oui, les deux

EDIT : C'EST BON ! c'etait pas reference = $essai mais id=$essai

Autant pour moi !

Un grand MERCI! j'en ai besoin plusieurs fois en plus Smiley merci Smiley banane

RESOLU !
Modifié par melER5 (16 Apr 2020 - 17:35)
Pages :