Хорошо, поэтому я обычно ищу и ищу, пока не найду решение, но я думаю, что это первая задача, которая выходит за рамки меня. Будем надеяться, что это не глупая ошибка! Вот мой первый пост ...% создает синтаксическую ошибку в sql LIKE search for json_encode
Код ниже - это модифицированный скрипт локатора хранилища, и все работает нормально, пока я не добавлю знак% в LIKE-часть инструкции sql. Когда его нет, я могу получить точные результаты поиска из инструкции 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 оператор должен забрать «синий, где я написал„имя% LUE“, потому что есть результат поиска соответствия для него, но он бросает ошибку.
Надеюсь, это было ясно и лаконично! Любая помощь ценится !!
Какая ошибка? –