Я внедрил мою базу данных, а затем получаю данные из базы данных через PHP.Данные в базе данных не получены из MySQL в PHP-коде
В моем коде я должен фильтровать данные по имени, и если имя существует, я хочу распечатать данные. Хотя требуемый элемент находится в таблице, ничего не отображается. Я не мог понять, где ошибка. Существует только информация о местонахождениях в базе данных, я не сохраняю локации пользователя в моей базе данных.
Мой код:
<?php
$username="myusername";
$password="mypasswd";
$database="mydatabase";
$host="mysqlmyhost.com";
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die("Unable to select database");
// check for post data
if (isset($_GET["locationName"])) {
$locationName = $_GET['locationName'];
// get a product from products table
$result = mysql_query("SELECT *FROM Location WHERE locationName = $locationName");
if (!empty($result)) {
// check for empty result
if (mysql_num_rows($result) > 0) {
$result = mysql_fetch_array($result);
$product = array();
$product["locationName"] = $row["locationName"];
$product["locationInfo"] = $row["locationInfo"];
$product["locationLatitude"] = $row["locationLatitude"];
$product["locationLongitude"] = $row["locationLongitude"];
$product["locationPic"] = $row["locationPic"];
$product["city"] = $row["city"];
// success
$response["success"] = 1;
// user node
$response["Location"] = array();
array_push($response["Location"], $product);
// echoing JSON response
echo json_encode($response);
} else {
// no product found
$response["success"] = 0;
$response["message"] = "No product found";
// echo no users JSON
echo json_encode($response);
}
} else {
// no product found
$response["success"] = 0;
$response["message"] = "No product found";
// echo no users JSON
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
// echoing JSON response
echo json_encode($response);
}
?>
Отредактирован:
Теперь я хотел бы показать ближайшие местоположения для пользователя. Я искал и менял код. У меня ошибка в строке, начинающейся с $ userLatitude = $ _ GET ['userLatitude']; , В нем говорится, что здесь произошла неожиданная ошибка t_string. Я не мог понять, что такое ошибка. Не могли бы вы снова помочь?
if (isset($_GET["userLatitude"]) && isset($_GET["userLongitude"])) {
$userLatitude=$_GET['userLatitude'];
$userLongitude=$_GET['userLongitude'];
$result = mysql_query("SELECT locationName, (6371 * acos(cos(radians( $userLatitude)) * cos(radians(locationLatitude)) * cos(radians(locationLongitude) - radians($userLatitude)) + sin(radians($userLongitude)) * sin(radians(locationLatitude)))) AS distance
FROM Location HAVING distance < 2 ORDER BY distance LIMIT 0 ,20") or die(mysql_error());
echo $result;
// check for empty result
if (mysql_num_rows($result) > 0) {
// looping through all results
// products node
$response["Location"] = array();
while ($row = mysql_fetch_array($result)) {
// temp user array
$product = array();
$product["locationName"] = $row["locationName"];
$product["locationInfo"] = $row["locationInfo"];
$product["locationLatitude"] = $row["locationLatitude"];
$product["locationLongitude"] = $row["locationLongitude"];
$product["locationPic"] = $row["locationPic"];
$product["city"] = $row["city"];
// push single product into final response array
array_push($response["Location"], $product);
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
} else {
// no products found
$response["success"] = 0;
$response["message"] = "No products found";
// echo no users JSON
echo json_encode($response);
}
mysql_close();
$ locationName кажется строкой, поэтому ей нужны кавычки: '$ locationName'. Обратите внимание, что вы должны использовать mysqli или pdo или, по крайней мере, дезинфицировать свой вход, прежде чем использовать его в запросе. – RafH
Вы уязвимы для [SQL-инъекций] (http://bobby-tables.com). Исправьте это, прежде чем вы даже подумаете об исправлении остальной части вашего кода. –
У меня есть {"success": 0, "message": "No product found"} message. mysql_num_rows ($ result) равен 0 – user2086258