Fonction disponibilité de l'heure Php/Mysqli

[Résolu/Fermé]
Signaler
Messages postés
35
Date d'inscription
mardi 15 septembre 2015
Statut
Membre
Dernière intervention
6 juillet 2020
-
Messages postés
2581
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
18 octobre 2021
-
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

Messages postés
2581
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
18 octobre 2021
464
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
Messages postés
2581
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
18 octobre 2021
464
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 ?
Messages postés
35
Date d'inscription
mardi 15 septembre 2015
Statut
Membre
Dernière intervention
6 juillet 2020
2
$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
Messages postés
2581
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
18 octobre 2021
464
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'";
>
Messages postés
2581
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
18 octobre 2021

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 ..
Messages postés
2581
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
18 octobre 2021
464
Si la requête fonctionne dans PhpMyAdmin, elle devrait retourner le même résultat dans ton script.
$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 'Erreur sql : ' . mysqli_error($db);
} else {
	$reservations = mysqli_fetch_all($result, MYSQLI_ASSOC);
	
	if ($reservations) {
		foreach ($reservations as $reservation) {
			var_dump($reservation);
		}
	} else {
		echo 'Aucune réservation';
	}
}