Page 1 sur 1

Problème de requête avec condition

Posté : 10 juin 2019, 18:18
par Larker
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 ! :)

Re: Problème de requête avec condition

Posté : 10 juin 2019, 18:28
par Saian
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.

Re: Problème de requête avec condition

Posté : 10 juin 2019, 18:46
par Larker
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.

Re: Problème de requête avec condition

Posté : 10 juin 2019, 19:12
par Saian
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à.