@Kristina8787

Почему функция выдает false?

Описана функция добавления в файл данных, и функция вывода массива данных на экран, вот функция добавления
function getOrders(){
	global $link;
	if(!is_file(ORDERS_LOG))
	return false;
	/* получаем в виде массива персональные данные пользователя из файла*/
	$orders = file(ORDERS_LOG);
	/*массив который будет возвращен функцией*/
	$allorders = [];
	foreach ($orders as $order){
		list($name, $email, $phone, $address, $orderid, $date) = explode("|", $order);
		/*Промежуточный массив для хранения информации о конкретном заказе */
		$orderinfo = [];
		/*сохранение информации о конкретном пользователе*/
		$orderinfo["name"] = $name;
		$orderinfo["email"] = $email;
		$orderinfo["phone"] = $phone;
		$orderinfo["address"] = $address;
		$orderinfo["orderid"] = $orderid;
		$orderinfo["date"] = $date;
		/* SQL-запрос на выборку из таблицы orders всех товаров для конкретного покупателя*/
		$sql = "SELECT title, author, pubyear, price, quantity FROM orders WHERE orderid = '$orderid' AND datetime = $date";
		/*Получение результата выборки*/
		if(!$result = mysqli_query($link, $sql))
		return false;
		$items = mysqli_fetch_all($result, MYSQLI_ASSOC);
		mysqli_free_result($result);
		/*Сохранение результата в промежуточном массиве*/
		$orderinfo["goods"] = $items;
		/*добавление промежуточного массива в возвращаемый массив*/
		$allorders[]=$ordersinfo;
	}
	return $allorders;
}


затем уже в файле где эта функция вызывается , выводятся на экран данные
$orders = getOrders();
    var_dump($orders);

В ORDERS_LOG константе обьявлен файл orders.log ,в который данные успешно поступают, но результатом вывода данных на экран получается bool(false), помогите разобраться, я так понимаю проблема где то во второй части первого кода, который идет после записи данных в лог, но все один в один как у преподавателя, и на фоне ученик говорит о такой же проблеме,но преподаватель ему сказал искать самому в чем дело,в комментариях к уроку тоже пусто.
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
nokimaro
@nokimaro Куратор тега PHP
Kristina8787, ну значит на этих этапах ошибок нет. Вижу опечатку в самом конце кода.

/*Сохранение результата в промежуточном массиве*/
    $orderinfo["goods"] = $items;
    /*добавление промежуточного массива в возвращаемый массив*/
    $allorders[]=$ordersinfo;


$orderinfo
$ordersinfo
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы