Bonjour,
Je dois créer un fichier xml à partir d'une base de données Mysql. J'ai un pb sur une requête sql qui est lié à PHP, je pense.
Lorsque j'affiche ma requête et que je la lance directement dans Mysql, elle fonctionne bien. En revanche, dans mon fichier php, elle ne fonctionne pas. Elle m'indique une erreur 1064. J'ai retourné le pb dans tous les sens et impossible de trouver. Cela vient des "" '' autour du like mais je ne vois pas.

voici mon code
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
$query ="SELECT n.nid AS id, n.title AS name, c.field_prsentation_value AS description, FROM_UNIXTIME(c.field_dates_de_lvnement_value)AS dated, FROM_UNIXTIME(c.field_date_de_fin_value) AS datef, c.field_lieu_latitude AS lat, c.field_lieu_longitude AS lng, c.field_lieu_address AS address, ( 3959 * acos( cos( radians( '%s' ) ) * cos( radians( c.field_lieu_latitude ) ) * cos( radians( c.field_lieu_longitude ) - radians( '%s' ) ) + sin( radians( '%s' ) ) * sin( radians( c.field_lieu_latitude ) ) ) ) AS distance
FROM content_type_evenements c, node n"; 
 
// avec date > ne fonctionne pas
if($dates!=none) {
	$query .=" WHERE n.nid = c.nid 
  AND (('FROM_UNIXTIME(c.field_dates_de_lvnement_value)' LIKE '$dates%') 
  OR (".$datesu." BETWEEN c.field_dates_de_lvnement_value 
       AND c.field_date_de_fin_value ) ) 
       ORDER BY distance";
}
 
// sans date > fonctionne
if($dates==none) {
	$query .=" WHERE n.nid=c.nid HAVING distance < '%s' ORDER BY distance";
  //$query .=" WHERE n.nid=c.nid  distance < ORDER BY distance";
}
et en claire, la requete qui fonctionne sous mysql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
SELECT n.nid AS id, 
           n.title AS name, 
           c.field_prsentation_value AS description,
           FROM_UNIXTIME(c.field_dates_de_lvnement_value)AS dated,    
           FROM_UNIXTIME(c.field_date_de_fin_value) AS datef,
           c.field_lieu_latitude AS lat, c.field_lieu_longitude AS lng, 
          c.field_lieu_address AS address, ( 3959 * acos( cos( radians( '%s' ) ) * cos( radians( c.field_lieu_latitude ) ) * cos( radians( c.field_lieu_longitude ) - radians( '%s' ) ) + sin( radians( '%s' ) ) * sin( radians( c.field_lieu_latitude ) ) ) ) AS distance 
 
FROM content_type_evenements c, node n 
WHERE n.nid = c.nid AND (('FROM_UNIXTIME(c.field_dates_de_lvnement_value)' LIKE '2009-02-12%') OR (1234393200 BETWEEN c.field_dates_de_lvnement_value AND c.field_date_de_fin_value ) ) 
 
ORDER BY distance

Je suis à court d'idée.
Merci d'avance pour être aide.

Elise