Есть скрипт php, который выбирает данные из БД и с помощью аякса подгружает их на страницу:
if ($_POST['refresh'] == "true") {
$query1 = $mysqli->query("SELECT * FROM `trade_history` WHERE ID_prod='$sesion_id' ORDER BY `TimeCloseOrder` DESC");
$query2 = $mysqli->query("SELECT * FROM `ordersbuy` WHERE id='$sesion_id' ORDER BY `ordtime` DESC");
while ($row1 = $query1->fetch_assoc()) {
$History_User['OrderID'][] = $row1['OrderID'];
$History_User['Price'][] = $row1['Price'];
$History_User['Amount'][] = $row1['Amount'];
$History_User['Total'][] = $row1['Total'];
$History_User['Type'][] = $row1['Type'];
$History_User['Val'][] = $row1['Val'];
$History_User['Prod'][] = $row1['Prod'];
$History_User['TimeCloseOrder'][] = $row1['TimeCloseOrder'];
}
while ($row2 = $query2->fetch_assoc()) {
$Active_Orders_User['OrderID'][] = $row2['OrderID'];
$Active_Orders_User['Price'][] = $row2['price'];
$Active_Orders_User['Amount'][] = $row2['amount'];
$Active_Orders_User['Total'][] = $row2['total'];
$Active_Orders_User['Type'][] = $row2['Type'];
$Active_Orders_User['Val'][] = $row2['Val'];
$Active_Orders_User['Prod'][] = $row2['Prod'];
$Active_Orders_User['TimeCreateOrders'][] = $row2['ordtime'];
}
$out = array(
'History_User' => $History_User,
'Active_Orders_User' => $Active_Orders_User
);
// Устанавливаем заголовот ответа в формате json
header('Content-Type: text/json; charset=utf-8');
// Кодируем данные в формат json и отправляем
echo json_encode($out);
Но проблема в том, что если одна из таблиц(trade_history/ordersbuy) пустая, то данные вовсе не подгружаются, ошибка такая: Undefined variable: History_User in My_Orders.php on line 38
и такая Cannot modify header information - headers already sent by (output started at My_Orders.php:38) in My_Orders.php on line 42
Если же обе таблицы имеют хотя бы по 1 записи, то данные загружаются без проблем, как мне в таком случае игнорировать пустой запрос и дальше выполнять скрипт?
Достаточно после $query2
сделать следующее:
$History_User = [];
$Active_Orders_User= [];
Вы пытаетесь вызвать данные переменные хотя не определили их в системе. Либо второй вариант:
$out = array(
'History_User' => $History_User ?? [],
'Active_Orders_User' => $Active_Orders_User ?? []
);
А что доолжно произойти, если одна из таблиц пустая?
Проверяй
if (count($History_User)==0) // пусто
в начале скрипта инициализируйте переменные:
$History_User=$Active_Orders_User=[];
иначе php выводит Вам ошибку, а заголовки, как известно, необходимо посылать до любого вывода.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго времени сутокПодскажите - как найти в тексте с помощью PHP последние 4 слова? Текст может быть случайным, по этому я не могу просто написать...
Я пытаюсь проверить определенное свойство объекта на наличие в нем текста nobr В этом свойстве лежит html-код -теги и какой-либо текст
Пишу бота для ТелеграмСерверная часть на PHP + MySql