Jim Clinton Ответов: 3

Предупреждение: mysql_fetch_assoc() ожидает параметр 1 будет ресурсом, булевым дается


У меня есть ошибка говорит он
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given


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

home.php

 <?php 
include("auth.php");

 ?>



<!DOCTYPE html>
<head>
     
        <title>Tamarga | Forum</title>
  
        <link rel="shortcut icon" href="../favicon.ico"> 
       <link rel="stylesheet" type="text/css" href="css/style.css">
       <style>
			body
				{
					background-image: url('img/indexback.jpg');
					background-attachment: fixed;
					background-size: 100% 100%;
				}
		</style>
    </head>
    <body>



	
<ul class="topnav">
 <li style="float:right"><a href="logout.php" float="right">Logout</a></li>
    <li style="float:right"><a>Hello <?php echo $_SESSION['Username']; ?>!</a></li>
    <li><a class="active" href="#home">Tamarga Forum</a></li>
    <li><a href="#home">Home</a></li>



</ul>

  <br> <br>
<center>
<div class="btn-group">
  <button class="button">Post Your Comments</button>
  </div>

</center>




<center>

<br>
<table>
<tr>
    <th>Category</th>
    <th>Description</th>
    </tr>


<?php

include 'dbconnect.php';
$sql="SELECT cat_name,cat_desc FROM tblcategories";

$query=mysql_query($sql);
while ($users=mysql_fetch_assoc($query)){
    echo "<tr>";
    echo "<td>".$users['cat_name']."</td>";
    echo "<td>".$users['cat_desc']."</td>";
    echo "</tr>";

}
?>
</table>
   </center> 
     </div>
    </body>
</html>

[no name]

Мне кажется, что результат вашего запроса не является логическим значением, которое вы ожидаете получить.

3 Ответов

Рейтинг:
2

Peter Leow

Должно быть, произошла какая-то ошибка при запросе базы данных, вы можете получить ее, добавив такую обработку ошибок:

$query=mysql_query($sql);

if (!$query){
   die('Invalid query: '.mysql_error());
}

while ($users=mysql_fetch_assoc($query)){
  //omitted
}
Однако возьмите записка[^] что:
Цитата:
Это расширение было устаревшим в PHP 5.5.0, и оно было удалено в PHP 7.0.0. Вместо этого следует использовать расширение MySQLi или PDO_MySQL.


Рейтинг:
2
Рейтинг:
0

Jochen Arndt

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

При возникновении ошибки возвращаемое значение является логическим false что, вероятно, и произошло здесь.

Решение:
Проверьте возвращаемое значение перед выборкой результатов:

if ($query = mysql_query($sql)) {
    while ($users=mysql_fetch_assoc($query)){
        // ...
    }
} else {
    // Report error
}