Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1131 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  requette sql (mysql) [RESOLU]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requette sql (mysql) [RESOLU]

n°919483
guiaero
Posté le 10-12-2004 à 11:47:13  profilanswer
 

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 ?
 
Bonsoir,
 
J'ai trouvé tout seul comme un grand et comme je ne suis pas rancunier, 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


Message édité par guiaero le 13-12-2004 à 00:57:22
mood
Publicité
Posté le 10-12-2004 à 11:47:13  profilanswer
 

n°919487
Sebastien
Posté le 10-12-2004 à 11:51:26  profilanswer
 

select tes_champs  
from ta_table
where ta_date < date_sortie
and ta_date > date_retour
 
je vois pas a difficulté la.

n°919516
guiaero
Posté le 10-12-2004 à 12:06:01  profilanswer
 

Sebastien a écrit :

select tes_champs  
from ta_table
where ta_date < date_sortie
and ta_date > date_retour
 
je vois pas a difficulté la.


 
C plus compliqué que ca. Je te donne un exemple :
 
dans ma base, il y a un 1er enregistrement (reservation)
Date sortie : 2004-12-14 13:00:00 Date retour : 2004-12-17 12:00:00
 
comment tu fais si tu as 8 cas différents je t'en cite que 6 :
 
1er utilisateur : Sa date de sortie 2004-12-09 12:00:00  sa date retour 2004-12-16 14:00:00
 
2e utilisateur : Sa date de sortie 2004-12-16 14:00:00  sa date retour 2004-12-20 10:00:00
 
3e utilisateur : Sa date de sortie 2004-12-15 12:00:00  sa date retour 2004-12-16 14:00:00
 
4e utilisateur : Sa date de sortie 2004-12-09 12:00:00  sa date retour 2004-12-22 10:00:00
 
5e utilisateur : Sa date de sortie 2004-12-09 12:00:00  sa date retour 2004-12-14 13:00:00
 
6e utilisateur : Sa date de sortie 2004-12-17 12:00:00  sa date retour 2004-12-22 10:00:00
 

n°919519
Fred999
Rabat-joie
Posté le 10-12-2004 à 12:06:49  profilanswer
 

BETWEEN c'est reconnu par MySQL.
 
where tadate between date1 and date2
 
(c'est pas standard d'ailleurs :??:)
 
Edit : essaie de reformater les dates :D et de mieux détailler ta demande, je ne comprends pas trop le truc :o)


Message édité par Fred999 le 10-12-2004 à 12:07:42
n°919524
Sebastien
Posté le 10-12-2004 à 12:08:59  profilanswer
 

C'est quoi ca ? des demandes ? ou des enregistrements ?
Moi je vois pas trop la difficulte, premier qui demande, premier servit non ?
 
Si c'est des enregistrements j'espere que tu prends en compte le numero de portable.
mais emme je ne vois pas la difficulte tjs.

n°919530
skeye
Posté le 10-12-2004 à 12:12:24  profilanswer
 

Je vois pas le problème non plus... :??:


---------------
Can't buy what I want because it's free -
n°919542
guiaero
Posté le 10-12-2004 à 12:28:56  profilanswer
 

skeye a écrit :

Je vois pas le problème non plus... :??:


 
Ca ne marche pas j'ai utilisé votre requette et j'ai fais 2 reservation
 
$query1 = "SELECT * FROM emprunt WHERE '$date_sortie_user' < date_sortie_bd AND '$date_retour_user' > date_retour_bd";
 
1ere resa :
 
date sortie : 2004-12-15 13:00:00   date retour : 2004-12-20 12:00:00
ca a marché (c normal pas de resa dans la bd)
 
2e resa :
 
date sortie : 2004-12-10 12:00:00   date retour : 2004-12-16 14:00:00
 
et hop il me l'a prit c'est pas normal car le 1er user prend le portable  le 15/12 et le rend le 20/12 alors que le 2e lui le prend le 16/12 (pendant qu'il est preté au 1er ca ne va pas bien sur ? :??:  
 

n°919550
skeye
Posté le 10-12-2004 à 12:35:13  profilanswer
 

J'ai rien donné comme requête moi hein...:o
Ce qu'il faut vérifier c'est :
1) la date de début n'est pas entre la date de début et la date de fin d'une réservation existante
2) Idem pour la date de fin.
3) il n'y a pas de réservation dont les dates de début et de fin sont entre les dates de début et de fin demandées.


---------------
Can't buy what I want because it's free -
n°919557
guiaero
Posté le 10-12-2004 à 12:42:27  profilanswer
 

skeye a écrit :

J'ai rien donné comme requête moi hein...:o
Ce qu'il faut vérifier c'est :
1) la date de début n'est pas entre la date de début et la date de fin d'une réservation existante
2) Idem pour la date de fin.
3) il n'y a pas de réservation dont les dates de début et de fin sont entre les dates de début et de fin demandées.


 
Oui ca doit etre un truc ds le genre je vais refflichir si des fois qqun a une idee... Merci d'avance

n°919580
guiaero
Posté le 10-12-2004 à 13:14:30  profilanswer
 

guiaero a écrit :

Oui ca doit etre un truc ds le genre je vais refflichir si des fois qqun a une idee... Merci d'avance


 
Pas d'idée ?

mood
Publicité
Posté le 10-12-2004 à 13:14:30  profilanswer
 

n°919582
skeye
Posté le 10-12-2004 à 13:15:35  profilanswer
 

Si, plein. Mais on t'a donné toutes les pistes dont tu as besoin, et on va pas faire le boulot à ta place...:o


---------------
Can't buy what I want because it's free -
n°919633
Sebastien
Posté le 10-12-2004 à 14:10:56  profilanswer
 

A ouais lol c'est pas la soluce que je t'ai donné mais un debut de logique.
Et je trouve que skeye t'as donné la réponse en entier.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  requette sql (mysql) [RESOLU]

 

Sujets relatifs
[RESOLU] probleme de script d'upload.Problème d'insert d'une image dans une base Mysql
[VBA Excel] [Résolu] Pb d'import de données txt dans excel avec VBA.[VBA Excel] Remplir 50 labels en une seule commande ? [résolu]
[VB6] Conversion .doc en .pdf [résolu]Php/mysql Afficher ID
Problème avec la taille d'un tableau [résolu]Décaler les valeurs dans une base mySQL
[RESOLU]Entrées multiples pourquoi?? 
Plus de sujets relatifs à : requette sql (mysql) [RESOLU]


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR