我正在开发一个应用程序,它需要根据人的经度,纬度和用户选择的半径显示结果,然后以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 是用户请求执行回复的地方,当我在浏览器中尝试时,我会空白页面。
//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查询中更具体,我真的很感激你是否也告诉我如何做到这一点。
步骤:
答案 0 :(得分:0)
“PDO”和“mysqli_ *”是两个独立的API。不要混合它们。
pullResults
有return $retunValue;
,但是对它的调用会抛弃返回值。
$string = json_encode($retunValue);
将生成一个字符串,您可以echo
进入结果。
“平台”是否期望HTML输出?或者只是JSON文本?如果是后者,则需要将此作为发出输出的第一个语句:
header('Content-Type: application/json');
底线:这可能就是您所需要的:
header('Content-Type: application/json');
echo json_encode($retunValue);
(我没有检查其他问题。)