Bonjour à tous,

Je suis en train de développer un systèm d'agenda et je voudrais pouvoir dire à l'utilisateur qu'il ne peut pas créer un event à cette heure là car il a déjà quelque chose à ce moment.

Voici ma table :

|------------|
| calendrier |
|------------|
| id         |
| titre      |
| debut      |
| fin        |
|------------|

debut et fin sont en datetime.

Mon problème est que je n'arrive pas à faire la requête SQL pour sélectionner tous les events qui sont dans cette plage horraire.

Exemple:

J'ai un rendez-vous de 10h à 11h et je voudrais rajouter un event de 9h30 à 10h15, je ne peux pas car j'ai déjà quelque chose. Mais je ne vois pas comment faire ma requête.

Est-ce que vous pourriez m'éclairer un peu ?

Merci d'avance et bonne journée (ou bonne soirée)

5 réponses


Indra
Réponse acceptée

Si j'ai bien compris ton problème, tu cherches à savoir si ton utilisateur a déjà créé un événement à la date choisie par celui-ci

J'imagine donc que tu récupères cette data via un formulaire ou via un calendrier.

$d = $_POST['date']; // Date choisie par l'utilisateur.
$userID = (l'id de ton utilisateur).

'SELECT * FROM calendrier
WHERE ('.$d.' BETWEEN debut AND fin) AND user_id = '.$user_id.';'

Au passage je ne vois pas de champ "user_id" dans ta table, comment fais-tu pour créer une relation avec tes utilisateurs ?

J'ai du mal à saisir, dans ta_date, je mets laquelle, 9h30 ou 10h15 et dans debut et fin je mets quoi ?

Ah ok pardon, je ne connaissais pas le BETWEEN.
Concernant l'id de l'utilisateur, c'est juste que j'ai oublié de le mettre dans mon exemple, mais il est bien présent

Merci, je test ça et je pense que cela va résoudre mon soucis

Du coup c'est parfait, ca fonctionne niquel maintenant

Merci

Avec plaisir!