【发布时间】:2015-06-23 01:58:42
【问题描述】:
我正在开发一个应用程序,它需要根据人的经度、纬度和用户选择的半径显示结果,然后以Json数组格式json_encode();返回结果
我的项目中有 3 个文件,分别是 sdbconnection.php、manipulate.php 和 pull.php。下面我解释了每个文件是如何工作的。
sdbconnection.php 是我的服务器和数据库连接。
//MySQL Database Connection Credential
class connection {
public static $host = "XXXXX";
public static $user = "XXXXXXX";
public static $password = "XXXXXXX";
public static $database = "XXXXXXX";
public static $port = "XXXXX";
}
manipulate.php 是我执行 SQL 查询并返回结果的方式。我试图弄清楚如何从google tutorial 发送请求,但我相信我遗漏了一些东西,因为他们没有使用 PDO 连接。
public function pullResults($longitude, $latitude, $radius){
$retunValue = array();
$sql = "SELECT title, latitude, longitude, ( 3959 * acos( cos( radians(:lat) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(:lng) ) + sin( radians(:lat) ) * sin( radians( latitude ) ) ) ) AS distance FROM posts HAVING distance < :radius ORDER BY distance LIMIT 0 , 20";
$result = $this->connection->query($sql);
if ($result != null && (mysqli_num_rows($result) >= 1)) {
$row = $result->fetch_array(MYSQLI_ASSOC);
if (!empty($row)) {
$retunValue = $row;
}
}
return $retunValue;
}
pull.php 是用户请求执行响应的地方,当我在浏览器中尝试时,我得到 Blank 页面。
//Database Connection and Query Manipulation.
require("handles/sdbconnection.php");
require("handles/manipulate.php");
// Get parameters from URL
$latitude = $_GET["latitude"];
$longitude= $_GET["longitude"];
$radius = $_GET["radius"];
$category = htmlentities($_GET["category"]);
//Connect to database
$databaseAccess = new manipulate();
$databaseAccess->openConnection();
//Get the Result
$databaseAccess->pullResults($longitude, $latitude, $radius);
//Close Connection After Data Pulled
$databaseAccess->closeConnection();
另外,如果您看到了,我正试图通过提供多个类别 ($category = htmlentities($_GET["category"]);) 来检索数据,从而使我的 MYSQL 查询更加具体,如果您也向我展示如何做到这一点,我真的很感激。
程序:
【问题讨论】:
-
勾画出拓扑——客户端、Web 服务器等。您可能要求做一些不可能的事情,并且需要重新考虑数据流。
-
@RickJames 我已添加
-
那么您在这里真正问的是什么——出于某种原因让您感到困惑的“空白页面”,或者一般如何进行这样的搜索? 两者都是可以很好地研究的主题,这里是 SO 以及网络的其余部分。
-
令人印象深刻!半径是否与您的问题相关?
-
@CBroe 我不能,因为在 PDO 与 MYSQL 的连接中没有解释它们,我相信我的问题是查询或 PDO 的工作方式
标签: php mysql oop pdo latitude-longitude