[RESOLU] Problème de requête avec condition

Eléphant du PHP | 282 Messages

10 juin 2019, 18:18

Bonjour à tous,

Je suis en train de développer un système de badge à obtenir sur mon site mais je bloque sur l'un d'eux.
Je voudrais que le membre l'obtienne s'il a bien noté les films avec l'id 1 et 2.
Voici mon code :
    case 16:
      $getNbrOfNotes = $bdd->prepare("
        SELECT
          COUNT(c.id) as `nbr`
        FROM `critics` c
        LEFT OUTER JOIN `nodes` n ON n.id = c.node_id
        WHERE
       c.user_id = :user_id
          AND c.id = :first_movie
          AND c.id = :second_movie
      ");

      $getNbrOfNotes ->execute([
        ':user_id' => $userId,
        ':first_movie' => 1,
        ':second_movie' => 2,
      ]);

      return $getNbrOfNotes ->fetchColumn() >= 2 ? true : null;
    break;
La requête me paraissait bonne mais doit y avoir un soucis dans le where je pense. Le AND ne doit pas être approprié.
Merci d'avance à ceux qui pourront m'aider ! :)

Avatar du membre
Mammouth du PHP | 1258 Messages

10 juin 2019, 18:28

Salut, avec un
WHERE user_id = :user_id AND (c.id = :first_movie OR c.id = :second_movie)
ça serait pas mieux ? Parce que c.id peut pas être égale à la fois à first_movie ET second_movie mais peut être égal à first_movie OU second_movie.
Je pense que tu pourrais même faire un
c.id IN (:first_movie, :second_movie)
.
En tout cas si tu testes directement dans phpmyadmin tu auras vite fait de voir quelle requête fonctionne.
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Eléphant du PHP | 282 Messages

10 juin 2019, 18:46

Merci de ton aide Saian !
Alors je viens de tester mais rien ne se passe. Il doit y avoir un soucis autre part mais je ne vois pas ou.

Avatar du membre
Mammouth du PHP | 1258 Messages

10 juin 2019, 19:12

Tu as testé les requêtes directement dans phpmyadmin ? si c'est pas fait, c'est ce que tu devrais faire. Testes dans phpmyadmin, quand tu auras la bonne requête, tu pourras l'intégrer dans le code php et voir si tu n'as pas un autre problème à ce niveau là.
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^