Bonjour,
Je suis confronté à un problème étrange. Dans un fichier PHP, j'écris une requête SQL que je stock dans une variable. Néanmoins, que je fait un echo de ma requête, le résultat est quelque peu différent.
Voici, très exactement, ma requête (copier/coller) :
Dans un cas d'utilisation, le résultat de l'écho me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 $req="SELECT v.id, v.marque, v.modele, v.immatriculation, v.type FROM vehicules v WHERE (v.id, v.marque, v.modele, v.immatriculation, v.type) NOT IN ( SELECT vi.id, vi.marque, vi.modele, vi.immatriculation, vi.type FROM vehicules vi LEFT OUTER JOIN reservations r ON vi.id=r.vehicule WHERE ( (r.timestampDepart<=".$timestampDepart." AND r.timestampRetour>".$timestampDepart.") OR (r.timestampDepart<".$timestampRetour." AND r.timestampRetour>=".$timestampRetour.") OR (".$timestampDepart."<=r.timestampDepart AND ".$timestampRetour.">r.timestampDepart) OR (".$timestampDepart."<r.timestampRetour AND ".$timestampRetour.">=r.timestampRetour) ) AND r.statut='Valide') AND v.type='".$_SESSION['demande']->getTypeVehicule()."';";
Comme vous pouvez le remarquer, la dernière clause OR n'est pas complète et je ne sais pas pourquoi. Si j'enlève le signe "=", ça m'affiche "1281589200 r.timestampRetour".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 SELECT v.id, v.marque, v.modele, v.immatriculation, v.type FROM vehicules v WHERE (v.id, v.marque, v.modele, v.immatriculation, v.type) NOT IN ( SELECT vi.id, vi.marque, vi.modele, vi.immatriculation, vi.type FROM vehicules vi LEFT OUTER JOIN reservations r ON vi.id = r.vehicule WHERE ( (r.timestampDepart <=1281589200 AND r.timestampRetour >1281589200) OR (r.timestampDepart <1281607200 AND r.timestampRetour >=1281607200) OR (1281589200 <= r.timestampDepart AND 1281607200 > r.timestampDepart ) OR ( 1281589200 = r.timestampRetour ) ) AND r.statut = 'Valide') AND v.type = 'Utilitaire'
Quelqu'un aurait-il une idée ?
Merci.
Partager