Member 13629755 Ответов: 1

При попытке запустить код базы данных PHP я получаю два сообщения об ошибке.


( ! ) Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /var/www/2909kher/entabell/detaljer.php on line 18


и
( ! ) Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /var/www/2909kher/entabell/detaljer.php on line 20



<!doctype html>
<html>
<body>
Dette er detaljer.php <br>
<?php
  include('oppkobling.php');

  //$by = $_POST[''];
  //echo($by);

  // Lag SQL-setning
    $query = 'SELECT * FROM rikestemennesker WHERE id = '.$_GET['id'];

  // Kjør spørringen
  $resultat = mysqli_query($db, $query);

  // Lagre antall poster som er funnet
  $antall = mysqli_num_rows($resultat);

  $rad = mysqli_fetch_array($resultat);

  echo "Navn: ".$rad['Navn']."<img src = './bilder/'".$rad['Bilde']."><br>";
  echo "Land: ".$rad['Land']."<br>";
  echo "Nettoformue: ".$rad['Nettoformue']."<br>";
  echo "Kilde: ".$rad['Kilde']."<br>";

?>
</body>
</html>


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

Я попробовал исправить все "и", а также определил результаты и вариации

1 Ответов

Рейтинг:
0

Jochen Arndt

Видеть РНР: в mysqli::запрос - руководство по эксплуатации[^]:

Цитата:

значение

Возвращает FALSE при сбое. Для успешного выбора, показа, описания или объяснения запросов mysqli_query() вернет объект mysqli_result. Для других успешных запросов mysqli_query() вернет TRUE.
Если вызов не удался, $resultat будет логическим, и это приведет к показанным предупреждениям, поскольку вызываемая функция ожидает тип объекта.

Чтобы избежать этого, всегда проверяйте, был ли вызов функции успешным, и продолжайте только тогда, когда ошибок не возникло:
if ($resultat = mysqli_query($db, $query);) {
    // Successful: Continue here
}
else {
    // Error: Report it
    printf("Error: %s\nfor query %s\n", mysqli_error($db), $query);
}

Все, что нужно сделать сейчас, это выяснить, почему ваш mysqli_query звонок не проходит. Подсказки можно найти в сообщении об ошибке, распечатанном в приведенном выше примере. С помощью команд базы данных вы также должны проверить командную строку (именно поэтому я включил ее в вывод ошибок). Ваша строка выглядит допустимой, но будет недействительной, если id не прошло ($_GET['id'] пусто) или у вас есть опечатки в именах таблиц или столбцов.