[RESOLU] Vérifier qu'un enregistrement n'existe pas dans une table donnée

Petit nouveau ! | 7 Messages

26 oct. 2018, 06:07

Bonjour,

Je sèche et je lance donc un petit appel à l'aide. Voici mon sujet : je fais un site d'e-learning et je cherche à proposer à l'utilisateur de faire une leçon qu'il n'a pas encore faite ou pas encore terminée.

Dans une table `lessons_done`, j'ai les colonnes `user_id` et `done`

Ce que je souhaite faire, c'est récupérer les id des leçons dans un autre table `data_lessons`
OU lessons_done.done = '0' (0=pas encore terminé et 1=terminé)
OU AUSSI il n'y a pas d'enregistrement dans `lessons_done` avec user_id = xxx et lesson_id = yyy

Et c'est là que je sèche.

Voilà ce que j'ai tenté comme code mais je ne serais pas étonné d'avoir un souci de logique.

Code : Tout sélectionner

SELECT data_lessons.lesson_id, data_courses.category FROM data_courses INNER JOIN data_lessons ON data_courses.course_id = data_lessons.course_id INNER JOIN flw_lessons_done ON data_lessons.lesson_id = flw_lessons_done.lesson_id WHERE NOT EXISTS (SELECT * FROM flw_lessons_done WHERE flw_lessons_done.user_id = '1002')

Avatar du membre
Mammouth du PHP | 1609 Messages

31 oct. 2018, 12:58

Code : Tout sélectionner

SELECT data_lessons.lesson_id, data_courses.category FROM data_courses INNER JOIN data_lessons ON data_courses.course_id = data_lessons.course_id WHERE data_lessons.lesson_id NOT IN ( SELECT flw_lessons_done.lesson_id FROM flw_lessons_done WHERE flw_lessons_done.user_id = '1002' )
Développeur web depuis + de 20 ans

Mammouth du PHP | 881 Messages

31 oct. 2018, 15:33

Ne serait-il pas plus simple de chercher la dernière leçon vue afin de proposer à l'usager la leçon suivante ?
Soyez artisans de paix

Petit nouveau ! | 7 Messages

05 nov. 2018, 07:03

Merci @Saian, je vais essayer ça.

@Patriboom. J'ai en fait besoin de récupérer de nombreuses leçons non faites afin de déterminer laquelle je dois propose ensuite, en fonction de sa catégorie et en fonction du profil de l'utilisateur.

Mammouth du PHP | 881 Messages

05 nov. 2018, 07:11

Alors, la solution de Saian est aussi ce que j'aurais proposé, une recheche par NOT IN (leçons faites)
Soyez artisans de paix

Petit nouveau ! | 7 Messages

05 nov. 2018, 07:14

Cool, merci