mysql文で変数を使用しようとしているため、入力に応じて変数が変更されます。たとえば、ユーザーがサイズを入力しない場合、ステートメントのその部分は表示されません。申し訳ありませんが説明に悪いです。しかし、以下のコードを実行するとエラーが発生しますが、 '動的な' ANDステートメントを削除するとコードが機能します。私は何が間違っているのか分かりません。そしてアイデア。mysqlクエリでどのように変数を使用するのですか?
if($size2 ==''){
$size_stat = '';
}else{
$size_stat = "AND size='$size2'";
}
if($re2 ==''){
$re_stat = '';
}else{
$re_stat = "AND re='$re2'";
}
if($status2 ==''){
$status_stat = '';
}else{
$status_stat = "AND status='$status2' ";
}
$result2 = mysql_query("SELECT
lat,lng,id,re,re_num,name,city,state,zip,address,status,category,size,
(3959 * acos(cos(radians($lat2))
* cos(radians(lat))
* cos(radians(lng) - radians($long2))
+ sin(radians($lat2))
* sin(radians(lat))
)
) AS distance
FROM
locations
WHERE
(state='PA' OR state='NY')
.$re_stat.
$size_stat.
$status_stat.
HAVING
distance < 300
ORDER BY
distance
LIMIT
0 , 50 ");
while($array = mysql_fetch_assoc($result2)){
$array_json[] = $array;
}
echo json_encode($array_json);
推測でホワイタペックがありません。例えば$ status_stat = "AND status = '$ status2'"; –