Есть задача: пользователь вводит в вебстраницу номер учебной группы, идёт запрос sql, пользователю возвращается расписание на сегодня.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Расписание</title>
</head>
<body>
<?php
require 'connect.php'; // Подключает файл с логином/паролем и именем БД
mysqli_set_charset($a,'utf8'); // Устанавливает кодировку клиента
$sql_select = 'SELECT * FROM `pisos`'; // Выбираем таблицу из которой читать данные
$result = mysqli_query($a, $sql_select); // Запрос к БД
$row = mysqli_fetch_array($result); // Разбираем полученый массив
do
{
printf("<p>Номер группы: ".$row['group_number']."</p><p>Дисциплина: ".$row['task_name']."</p><p>Преподаватель: ".$row['task_family']."</p>----------------------------------------<b>");
}
while($row = mysqli_fetch_array($result));
?>
<form method="post" action="index.html">
<input id="submitback" type="submit" value="На главную">
</form>
</body>
</html>
PHP выводит две ошибки:
PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /var/www/admin/data/www/site/allauthor.php on line 15
<p>Номер группы: </p><p>Дисциплина: </p><p>Преподаватель: </p>----------------------------------------<b>PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /var/www/admin/data/www/site/allauthor.php on line 20
В чём причина и как это исправить?
Я тоже сталкивался такими проблемами) Раз вы передали перемену $a (Думаю это подключение к базе данных) на mysqli_query, передайти и на mysqli_fetch_array.
<?php
require 'connect.php'; // Подключает файл с логином/паролем и именем БД
mysqli_set_charset($a,'utf8'); // Устанавливает кодировку клиента
$sql_select = 'SELECT * FROM `pisos`'; // Выбираем таблицу из которой читать данные
$result = mysqli_query($a, $sql_select); // Запрос к БД
$row = mysqli_fetch_array($a, $result); // Разбираем полученый массив
do
{
printf("<p>Номер группы: ".$row['group_number']."</p><p>Дисциплина: ".$row['task_name']."</p><p>Преподаватель: ".$row['task_family']."</p>----------------------------------------<b>");
}
while($row = mysqli_fetch_array($result));
?>
Если это не работает, то попробуйте поменять местами mysqli_query($sql_select , $a ) и тд
Что-то не то с $result
, попробуйте вывести через просто $result
и гляньте, скорее всего проблема в том, что в переменную ничего не записывается.
mysqli_query()
возвращает mysqli_result|bool
Возвращает false в случае возникновения ошибки. В случае успешного выполнения запросов, которые создают набор результатов, таких как SELECT, SHOW, DESCRIBE или EXPLAIN, mysqli_query() вернёт объект mysqli_result. Для остальных успешных запросов mysqli_query() вернёт true.
в твоем случае это false, о чем и говорится в ошибке "...boolean given in..."
собственно, где создание коннекта к базе?
$db = new mysqli('localhost','user','pass','database');
или это в connect.php
? Тогда не мешало бы там же сделать проверку на ошибки.
курим тут
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть триггер для проверки уникальности вставляемого поля login в таблицу Client
Доброго времени суток уважаемые форумчане! В программировании MySQL совсем новичокНужно написать SQL-запрос к СУБД MySQL, который выбрал из базы...
Можно ли это сделать с помощью LIMIT? Или можно ли извлечь запись у которой самый большой id, так как у каждой строки он автоинкемируемый, а значит...