Condition WHERE (date NOT BETWEEN date_start AND date_end)

Eléphant du PHP | 353 Messages

12 mai 2006, 11:51

Bonjour , je cherche le moyen de vérifier si une date et heure donnée ne se trouve pas entre 2 autres afin de ne pas avoir des chevauchements de mes activités.

J'ai déjà essayé ça =>
//Vérifions que le véhicule n'est pas utilisé
	$qry_used = mysql_query("SELECT COUNT(*) AS used FROM trans_attrib WHERE ($date_start NOT BETWEEN trans_attrib_time_start AND trans_attrib_time_end) AND trans_attrib_fk_trans_dispo_id = '$vehicule[trans_dispo_id]'") or die (mysql_error());
	$used = mysql_result($qry_used,"used");
Mais ca bug mais aucun message d'erreur , juste le reste de ma page qui ne s'affiche pas correctement

merci d'avance

Mammouth du PHP | 19672 Messages

12 mai 2006, 11:56

Si tu te donnais une petite chance de lire ta requête sans t'arracher les yeux, on y gagnerait tous :
$sql = "SELECT COUNT(*) AS used 
FROM trans_attrib 
WHERE ('". $date_start ."' NOT BETWEEN trans_attrib_time_start 
	AND trans_attrib_time_end) 
AND trans_attrib_fk_trans_dispo_id = '". $vehicule['trans_dispo_id'] ."';";
Ensuite, tu fais afficher pour tester dans PMA et ensuite seulement tu utilises mysql_query avec $sql en paramètre au lieu de la requête directe ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 353 Messages

12 mai 2006, 12:09

merci , en fait , j'avais juste oublié les '' pour '$date_start'
.. WHERE ('$date_start' NOT BETWEEN  ..
Bête oublis !!

merci à toi

Mammouth du PHP | 19672 Messages

12 mai 2006, 12:56

Ben oui, quelqu'un sur ce forum a un jour dit à mon propos "chouette, un méticuleur de mouches", c'est vrai que je peux devenir fatigant avec ça, mais en étant rigide sur la concaténation propre des chaines/variables PHP, je n'ai jamais ce type de soucis, j'ai pas de temps à perdre avec ca, des problèmes plus pointus sur de la méthodologie ou des optimisation de performance sont beaucoup plus intéressants à traiter que des histoires de virgules ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: