Aller au contenu

Requette MySQL


cordesailes

Sujets conseillés

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 ?

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...