【发布时间】:2016-03-11 11:40:21
【问题描述】:
好的,所以我通常会搜索和搜索,直到找到解决方案,但我认为这是我无法完成的第一个任务。希望这不是一个愚蠢的错误!这是我的第一篇文章...
下面的代码是一个修改过的商店定位器脚本,它一切正常,直到我在 sql 语句的 LIKE 部分添加一个 % 符号。当它不存在时,我可以从 LIKE 语句中获得准确的搜索结果,因此我知道所有其余代码都很好,但只要添加 % 符号,我就会收到错误消息。
你们怎么了?!
<?php
header('Access-Control-Allow-Origin: *');
$con = mysqli_connect("$host","$user","$password","$db");
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}
mysqli_select_db($con,"sakila");
// Get parameters
$mlat = $_POST["lat"];
$mlng = $_POST["lng"];
$radius = $_POST["radius"];
$gamename = $_POST["gamename"];
$idGames2 = $_POST["idGames2"];
$matchtype2 = $_POST["matchtype2"];
// Search the rows in the markers table
//change 3959 to 6371 for distance in KM
$sql = sprintf("SELECT (ignore this there's lots of requested collumns),
lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) )
AS distance FROM games WHERE name LIKE '%lue' AND matchtype=$matchtype2 HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20 ",
mysqli_real_escape_string($con,$mlat),
mysqli_real_escape_string($con,$mlng),
mysqli_real_escape_string($con,$mlat),
mysqli_real_escape_string($con,$radius));
$result = mysqli_query($con,$sql);
$rows = array();
while($r = mysqli_fetch_assoc($result)) {
$rows[] = $r;
}
mysqli_close($con);
echo json_encode($rows);
?>
LIKE 语句应该选择名称 'blue where I have written '%lue',因为它有匹配的搜索结果,但它会抛出错误。
希望这足够清晰和简洁!任何帮助表示赞赏!
【问题讨论】:
标签: javascript php sql json sql-like