Member 14729284 Ответов: 1

Здравствуйте, я пытаюсь запустить свою таблицу базы данных и получаю эту ошибку на странице результатов.


Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, bool given in C:\wamp64\www\database\db.php on line 21


Что я уже пробовал:

<?php
echo "<!DOCTYPE html>";
echo "<html>";
echo "<body>";



$conn = mysqli_connect('localhost', 'root', '');
mysqli_select_db($conn, 'db');

$sql = "SELECT * FROM `myguests` ";
$result = mysqli_query($conn, $sql);
{	
  
        echo "<table>";
            echo "<tr>";
                echo "<th>ID</th>";
                echo "<th>First name</th>";
                echo "<th>Last name</th>";
            echo "</tr>";
        while($row = mysqli_fetch_array($result))
		{
            echo "<tr>";
                echo "<td>" . $row['ID'] . "</td>";
                echo "<td>" . $row['First name'] . "</td>";
                echo "<td>" . $row['Last name'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
}   
		
 
echo "</body>";
echo "</html>";
?>

Richard MacCutchan

Это уже седьмой раз, когда вы задаете этот вопрос и получаете решение. Возможно, пришло время остановиться и потратить некоторое время на изучение документации MySQL в надлежащих деталях.

Member 14729284

Я новичок в PHP и MySQL, и я читал этот документ, но я не понимаю так задаваемых вопросов.

1 Ответов

Рейтинг:
2

phil.o

mysqli_query() вернет false, если запрос не сможет получить некоторые данные.
Вы всегда должны обернуть его в блок if, чтобы учесть такой случай:

if ($result = mysqli_query($conn, $sql))
{
   // Will get here only if $result variable is not false, i.e. it contains actual data
   echo "<table>";
   // ...
}


Member 14729284

Я попробовал также использовать блок if, но снова получил тот же результат.

phil.o

Вы, должно быть, забыли что-то тогда, потому что нет никакого шанса, что это может войти в if блок, если $result переменная является ложной. Примечание Вы не должны ставить точку с запятой в конце строки if линия.

Member 14729284

Я уже поставил точку с запятой в конце строки if.Ниже вы можете увидеть код:
";
эхо "";
эхо "";



$conn = mysqli_connect('localhost', 'root', ");
mysqli_select_db($Конн, 'дБ');

$sql = "SELECT * FROM `myguests` ";
if ($result = mysqli_query($conn, $sql));
{

эхо "";
эхо "";
эхо "";
эхо "";
эхо "";
эхо "";
while($row = mysqli_fetch_array($result))
{
эхо "";
эхо "";
эхо "";
эхо "";
эхо "";
}
Эхо "IDFirst nameLast name" . $строки['идентификатор'] . "" . $строки['имя'] . "" . $строки['фамилия'] . "";
}


эхо "";
эхо "";
?>

phil.o

Пожалуйста, удалите точку с запятой в конце строки if.

Member 14729284

Удалил точку с запятой, а затем ошибка исчезла, но показалась пустая страница.Почему я не получаю столик?

phil.o

Боюсь, что я не смогу ответить на этот вопрос. У меня нет данных, с которыми вы работаете, поэтому я не могу сказать вам, почему ваш запрос не возвращает никакого результата.

Member 14729284

Спасибо за помощь.