为什么以下SELECT语句会返回else语句?和$ latitude和$经度的空白回声
SELECT CONVERT(date, UC.USGDATE) as USGDATE, SG.DESCRIPTION, SG.SERVICEGRP
FROM APP_SYUTILITYCHARGES UC LEFT OUTER JOIN
TX_MYSERVICEITEM SI
ON SI.SERVICEITEMID = UC.SERVICEITEMID LEFT OUTER JOIN
TX_MYSERVICE MS
ON MS.SERVICEID = SI.SERVICEID LEFT OUTER JOIN
TX_SERVICEGROUP SG
ON SG.SERVICEGRP = MS.SERVICEGRP
WHERE UC.STAYID = @STAYID
GROUP BY SG.SERVICEGRP, CONVERT(date, UC.USGDATE), SG.DESCRIPTION
将$ latitude和$ longitude的SELECT语句值替换为表单(lat& long)中的实际值,然后正确地回显了$ latitude和$ longitude,证明了表单中的值(lat& long)通过2个变量正确解析。
使用$ latitude& SELECT语句中的$ longitude打破了它,我不明白为什么。
感谢您的帮助。 伊恩。
表格详情
$latitude = $_GET["lat"];
$longitude = $_GET["long"];
$pScan="";
$sql = "SELECT id, agent_name, address, url, latitude, longitude FROM enabled_boards WHERE latitude='$latitude' AND longitude='$longitude' ";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$id=$row["id"];
$agent=$row["agent_name"];
$address=$row["address"];
$url=$row["url"];
$latitude=$row["latitude"];
$longitude=$row["longitude"];
$pScan.=' <div id="wrapper">
<a href="propertyDisp.php?id=' . $id . '" target="_self" >
<div id="agentIdent"><img src="http://arpad.property/logos/' . $agent . '.jpg"></div>
<div id="propertyIdent"><h3 align="right">' . $address . '</h3></div>
</div></a>';
}
}else{
$pScan="No results found,<br>please ensure the property is Arpad Enabled.";
}
*这些值已添加到输入中以进行测试,一旦解决此问题,我们将删除这些值。
在SELECT语句中使用$ latitude AND $ longitude。
在SELECT语句中使用52.562292 AND -0.660871。
答案 0 :(得分:1)
您的查询必须是
$sql = "SELECT id, agent_name, address, url, latitude, longitude FROM enabled_boards WHERE latitude='" . $latitude. "' AND longitude='". $longitude ."'";
答案 1 :(得分:1)
始终创建查询以阻止sql injection
。列名和表名在backtick
中。
$sql = "SELECT `id`, `agent_name`, `address`, `url`, `latitude`, `longitude` FROM `enabled_boards` WHERE `latitude`='".$latitude."' AND `longitude`='".$longitude."' ";
始终使用mysqli_connect_errno
检查查询中的错误
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
<强>更新强>
forget
form name
input field
<input type="text" id="lat" value="52.562292" />
<input type="text" id="long" value="-0.660871" />
这将是
<input type="text" id="lat" value="52.562292" name="lat" />
<input type="text" id="long" value="-0.660871" name="long" />
而不是GET方法
$latitude = $_GET["lat"];
$longitude = $_GET["long"];
使用POST方法因为您使用method="post"
所以它将是
$latitude = $_POST["lat"];
$longitude = $_POST["long"];