cordesailes Posté 9 Décembre 2004 Posté 9 Décembre 2004 Bonsoir, Je suis entrain de developper un intranet en PHP / MySQL au sein de ma boite pour permettre aux utilisateurs de faire des réservations d'ordinateurs portables. Ca fait une semaine que je galère avec les requêtes MySQL. Dans la base de données, j'ai, entre autres 2 champs : Date sortie portable et Date retour portable. Je voudrai écrire une requêtte me permettant de verifier si un portable est libre dans l'intervalle des dates entrées par l'utilisateur. Comment faire SVP ?
Vincent Posté 9 Décembre 2004 Posté 9 Décembre 2004 cela doit surement resemble a cela : select * from maTable where date_sortie>date_saisie or date_retour<date_saisie en gros : je selectionne tout ce qui correspond a la date de réservation inférieur a la date de sortie ou la date de retour < date de reservation ... comme ca je ne liste pas les portable en cours de pret lors de la periode demandée
cordesailes Posté 9 Décembre 2004 Auteur Posté 9 Décembre 2004 Merci je vais tester immédiatement ça.
cordesailes Posté 10 Décembre 2004 Auteur Posté 10 Décembre 2004 Merci mais désolé ca ne marche pas c'est plus compliqué que ça.
-ZN- Posté 10 Décembre 2004 Posté 10 Décembre 2004 Es-tu alle voir sur mysql.org? Y'a pas mal de bons examples avec un peu de temps tu devrais y trouver ton bonheur!
Anonymus Posté 10 Décembre 2004 Posté 10 Décembre 2004 En fait, par rapport à ta requète, il faut tester que les 2 conditions soient vraies. Ce n'est pas 'OR', c'est 'AND'. Mais cela dépend aussi du format de tes dates. Ainsi, elles peuvent être 10-12-2004 ou 2004-12-10 voire un 'timestamp'. La facon de chercher n'est pas du tout la même. D'où la question : Quel est le format des champs 'date' de la table ? Anonymus.
cordesailes Posté 10 Décembre 2004 Auteur Posté 10 Décembre 2004 Le format de mes date est DateFull cad 2004-12-10 12:00:00
cordesailes Posté 13 Décembre 2004 Auteur Posté 13 Décembre 2004 Bonsoir, J'ai enfin trouvé. Je vous donne la réponse : $query = "SELECT * FROM emprunt WHERE ('$date_sortie_user' = date_sortie_BD AND '$date_retour_user' = date_retour_BD OR '$date_sortie_user' < date_sortie_BD AND '$date_retour_user' > date_sortie_BD OR '$date_sortie_user' < date_retour_BD AND '$date_retour_user' >= date_retour_BD OR '$date_sortie_user' >= date_sortie_BD AND '$date_retour_user' <= date_retour_BD OR '$date_sortie_user' <= date_sortie_BD AND '$date_retour_user' >= date_retour_BD)"; $result = mysql_query($query) or die ("Execution de la requête impossible"); $num = mysql_num_rows($result); if ($num == 0) // aucune ligne ne contient ses intervalles donc la resa // peut se faire { //insertion de la réservation } else { //Réservation impossible! } Merci
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant