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
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
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"; }
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
Partager