Как экстраполировать данные Mysql и поместить в массив?

Привет, ребята, я пробовал много раз, но не понимаю, в чем проблема ...

У меня есть Ajax Call, который передает параметры, используемые для запросMySql. Не понимаю, почему не работает и возвращаю мне ноль.

include_once("../config.php"); //file to connect to database
$con= mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_DATA);

//parameters (these are ok)
$ieri = strval($_GET['ieri']);
$oggi = strval($_GET['oggi']);

$magn_min = strval($_GET['magn-min']);
$magn_max = strval($_GET['magn-max']);

$ipo_min = strval($_GET['ipo-min']);
$ipo_max = strval($_GET['ipo-max']);

$lat_sup = strval($_GET['lat-sup']);
$lat_inf = strval($_GET['lat-inf']);

$lng_sin = strval($_GET['lng-sin']);
$lng_des = strval($_GET['lng-des']);

$id_call = $_GET['id-call'];
$offset = ($id_call - 1)*400;

if (isset($_GET['lat-sup'])) {   
 $query = "SELECT * FROM earthquakes WHERE milliseconds BETWEEN " .$ieri." AND " .$oggi." AND magnitude BETWEEN " .$magn_min." AND " .$magn_max." AND ipocentro BETWEEN " .$ipo_min." AND " .$ipo_max." AND latitude BETWEEN " .$lat_inf." AND " .$lat_sup." AND longitude BETWEEN " .$lng_sin." AND " .$lng_des." OFFSET ".$offset." LIMIT 400";
 $n_quakes = "SELECT COUNT(*) FROM earthquakes WHERE milliseconds BETWEEN " .$ieri." AND " .$oggi." AND magnitude BETWEEN " .$magn_min." AND " .$magn_max." AND ipocentro BETWEEN " .$ipo_min." AND " .$ipo_max." AND latitude BETWEEN " .$lat_inf." AND " .$lat_sup." AND longitude BETWEEN " .$lng_sin." AND " .$lng_des;
}
else{
 $query = "SELECT * FROM earthquakes WHERE milliseconds BETWEEN " .$ieri." AND " .$oggi." AND magnitude BETWEEN " .$magn_min." AND " .$magn_max." AND ipocentro BETWEEN " .$ipo_min." AND " .$ipo_max." OFFSET ".$offset." LIMIT 400";
 $n_quakes = "SELECT COUNT(*) FROM earthquakes WHERE milliseconds BETWEEN " .$ieri." AND " .$oggi." AND magnitude BETWEEN " .$magn_min." AND " .$magn_max." AND ipocentro BETWEEN " .$ipo_min." AND " .$ipo_max;
}

$result = mysqli_query($con,$query);
print_r($result); //return null

while ($row = mysqli_fetch_assoc($result)) { 
   $array_quakes[] = $row;
}
mysqli_free_result($array_quakes);


echo json_encode($n_quakes,$array_quakes); 
mysqli_close($con); // close connection with database

Почему print_r($result); возвращает ноль? Однако я подозреваю, что ВЫБРАТЬ СЧЕТЧИК (*) неверно подсчитывать, сколько строк вернулось ...

Вы можете помочь мне?

Большое спасибо и извините за мой английский ...

добавьте echo mysqli_error($con); после mysqli_query(), чтобы понять, почему ваш запрос не работает. И замените print_r($result); на var_dump($result); ($ result не массив)

Jeff 01.06.2018 14:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
148
1

Ответы 1

Это может быть отсутствие скобок. Заключите ваши условия between в круглые скобки

$query = "SELECT * 
FROM earthquakes 
WHERE (milliseconds BETWEEN `$ieri` AND `$oggi`)
    AND (magnitude BETWEEN `$magn_min` AND `$magn_max`)
    AND (ipocentro BETWEEN `$ipo_min` AND `$ipo_max`)
OFFSET $offset LIMIT 400";

$n_quakes = "SELECT COUNT(*)
FROM earthquakes
WHERE (milliseconds BETWEEN `$ieri` AND `$oggi`)
   AND (magnitude BETWEEN `$magn`_min AND `$magn_max`)
   AND (ipocentro BETWEEN `$ipo_min` AND `$ipo_max`)
   AND (latitude BETWEEN `$lat_inf` AND `$lat_sup`)
   AND (longitude BETWEEN `$lng_sin` AND `$lng_des`)";

$ n_quakes правильно? Однако не работает ... верните мне "null" :(

Borja 01.06.2018 12:48

Если ваше поле является строкой, переносится в одинарную кавычку.

alamincse07 01.06.2018 12:55

не работает .... верните это "SELECT COUNT (*) FROM earthquakes_eui WHERE (миллисекунды МЕЖДУ '1422533600000' И '1527631200000') И (величина МЕЖДУ '2,0' И '10,0') И (ipocentro МЕЖДУ '0,0' И '800.0') "

Borja 01.06.2018 13:03

Другие вопросы по теме