Fonction disponibilité de l'heure Php/Mysqli

Résolu
Cassie691 Messages postés 37 Statut Membre -  
Pitet Messages postés 2845 Statut Membre -
Bonjour,

Voila mon problème, je cherche à faire un espace de réservation mais seulement avec les heures ! Par exemple: (Sachant qu'un rendez-vous est de 1H)

- Monsieur Dupond veut réserver le 29/12 à 9H30 -> OK
- Madame Duval veut réserver le 29/12 à 10H -> NON ! Le RDV de Dupond est la!
- Madame Duval veut donc réserver le 29/12 à 10H31 -> Oui le RDV de Dupond est terminé !

J'ai donc commencé ca !

$lheure = $_POST['heure']; // L'heure que le client souhaite !
$lheure2 = date("Hi", strtotime("+60 minutes", strtotime($lheure))); // J'ajoute 60min du temps pour le rendez vous


J'ajoute déjà ça dans la base de données, j'ai donc l'heure du RDV et l'heure du RDV avec 60 minutes en plus.
(9H30 et 10H30).

Ce que je veut faire, c'est qu'un nouveau client ne peut pas réserver de 9H30 à 10H30.

je vous remercie d'avance pour vos réponses
n'hésitez pas si vous avez des questions :)

1 réponse

  1. Pitet Messages postés 2845 Statut Membre 530
     
    Salut,

    La conception est assez simple :
    1. Lorsque le visiteur envoie l'heure de rdv qu'il souhaite, on fait une requête sql pour chercher les rdv enregistrés à la même heure.
    Un exemple pour la requête : https://sql.sh/cours/where/between

    2. Si la requête retourne un résultat, on indique au visiteur que cette heure est déjà prise et on lui propose un nouveau choix. Si la requête ne retourne aucun résultat, on enregistre le rdv.

    Une autre façon de faire serait également de proposer au visiteur uniquement les heures de rdv qui sont libres.

    Bonne journée
    0
    1. Cassie691
       
      Merci pour ta réponse !
      J'ai regarder sur le lien et si j'ai bien compris je devrais faire :
      Heure du RDV du client: 10:00
      Donc le RDV sera terminer à 11:00.

      SELECT *
      FROM utilisateur
      WHERE heure BETWEEN `10:00' AND `11:00' ?
      J'ai vraiment du mal ..
      0
    2. Pitet Messages postés 2845 Statut Membre 530
       
      Oui c'est l'idée mais il faut que tu gères la date complète avec le jour. Comment sont enregistrées tes dates en bdd ?
      0
    3. Cassie691 Messages postés 37 Statut Membre 7
       
      $query = "SELECT lheure FROM resa WHERE lheure BETWEEN '11:00' AND '12:00' AND date='15-09-2015";
      $result=mysqli_query($db,$query);
      if($result === false) {
          echo "AUCUNE RESERVATION";
      }


      Via PhpMyAdmin en passant direct par Mysql le code:
      SELECT lheure FROM resa WHERE lheure BETWEEN '11:00' AND '12:00' AND date='15-09-2015"
      Fonctionne sans problème il va bien afficher les enregistrements entre 11H et 12H mais
      avec le code php au dessus ça ne fonctionne pas pourtant aucune erreurs ..
      Je te remercie
      0
    4. Pitet Messages postés 2845 Statut Membre 530
       
      Il manque un guillemet simple pour fermer la valeur date dans ton code php :
      $query = "SELECT lheure FROM resa WHERE lheure BETWEEN '11:00' AND '12:00' AND date='15-09-2015'";
      0
    5. Cassie691 > Pitet Messages postés 2845 Statut Membre
       
      Mauvaise manipulation du copié/collé même avec la guillemet ça ne fonctionne pas j'ai l'impression qui me sort un résultat vide ..
      0