Я ищу запрос SQLite, который будет возвращать значения, которые являются большими или меньше чем 0,014763 для СПГ и 0.008830 для lat. Я использую следующий код...
$latupp = $_REQUEST['currlat'] + 0.008830;
$latlow = $_REQUEST['currlat'] - 0.008830;
$lngupp = $_REQUEST['currlng'] + 0.014763;
$lnglow = $_REQUEST['currlng'] - 0.014763;
$q=mysql_query("SELECT * FROM `tweets`
WHERE `lat` > $latlow AND
`lat` < $latupp OR
`lng` > $lnglow AND
`lng` < $lngupp;") or die(mysql_error());
Но это возвращает неправильные результаты, например, больше результаты или меньше чем 0,1441209. Я не могу вполне выяснить почему. у кого-либо есть какие-либо предложения?
Возможно ...
$q=mysql_query("SELECT * FROM `tweets`
WHERE `lat` > $latlow AND
`lat` < $latupp AND
`lng` > $lnglow AND
`lng` < $lngupp;") or die(mysql_error());
Попробуйте это.
$q=mysql_query("SELECT * FROM `tweets`
WHERE `lat` >". $latlow. "AND
`lat` <". $latupp. "OR
`lng` >". $lnglow. "AND
`lng` <". $lngupp.";")
Это должно сработать:
$latupp = $_REQUEST['currlat'] + 0.008830;
$latlow = $_REQUEST['currlat'] - 0.008830;
$lngupp = $_REQUEST['currlng'] + 0.014763;
$lnglow = $_REQUEST['currlng'] - 0.014763;
$q=mysql_query("SELECT * FROM `tweets`
WHERE `lat` BETWEEN $latlow AND $latupp
AND
`lng` BETWEEN $lnglow AND $lngupp;") or die(mysql_error());
Возможно, вам нужны скобки, чтобы разделить первую и вторую части (не могу проверить это здесь).
Вы допустили небольшую ошибку, соединив ограничения широты и долготы оператором «ИЛИ». Ваша команда говорит:
Дайте мне все записи, которые имеют:
ИЛИ
ИЛИ ОБЕ