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) :
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()."';";
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
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'
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".

Quelqu'un aurait-il une idée ?

Merci.