Aller au contenu

Sujets conseillés

Posté

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 ?

Posté

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

Posté

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!

Posté

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.

Posté

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

Veuillez vous connecter pour commenter

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



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