Возможный дубликат:
Msgstr "Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет ресурсом, boolean данный" ошибка при попытке создания корзины php
Я продолжаю получать эту ошибку здесь:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ReadNotes\viewyournote.php on line 40
С этим кодом здесь:
<?php //Starting session session_start(); //Includes mass includes containing all the files needed to execute the full script //Also shows homepage elements without customs include ('includes/mass.php'); //Set the session variable $username = $_SESSION['username']; //Get variables from form $chapter = substr($_GET['chapter'],1,-1); $id = substr($_GET['note'],1,-1); $user = substr($_GET['user'],1,-1); $author = substr($_GET['author'],1,-1); $book = substr($_GET['book'],1,-1); //Check if isset(username)/// if (isset($username)) //Execute view { $sql_to_view_the_note = "SELECT * FROM notes INNER JOIN small_note ON notes_id = '$id' AND authname = '$author' AND bookname = '$book' AND user = '$username'"; $sql_view_query = mysql_query($sql_to_view_the_note); while ($view_row = mysql_fetch_assoc($sql_view_query)) { //Define values to view to user $author_v = $view_row['authname']; $bookname_v = $view_row['bookname']; $chapter_name_v = $view_row['chapter_name']; $smallnote_v = $view_row['small_note']; } //Echo back author name and book name echo "<center>"; echo "<br><br>"; echo "<div id= 'authorname'>"; echo "Author's Name: "; echo $author_v; echo "</div>"; echo "</div>"; //Echo back book name echo "<br>"; echo "<div id= 'book_name'>"; echo "Books Name: "; echo $bookname_v; echo "</div>"; echo "</center>"; //Echo back chapter echo "<br>"; echo "<div id= 'book_name'>"; echo "Chapter Name: "; echo $chapter_name_v; echo "</div>"; echo "</center>"; //Echo back note echo "<br>"; echo "<div id= 'book_name'>"; echo "Small notes: "; echo $smallnote_v; echo "</div>"; echo "</center>"; } ?>
Вы всегда должны проверять возвращаемое значение mysql_query
прежде чем использовать mysql_fetch_assoc
Когда выполнение запроса не выполняется, mysql_query
возвращает false
(boolean), и когда вы передаете это как вход в mysql_fetch_assoc
, вы получаете свою ошибку.
Распечатайте запрос непосредственно перед mysql_query, запустите его в mysql и посмотрите, работает ли он правильно.
mysql_query возвращает false, если произошла ошибка. вызовите mysql_error, чтобы узнать, почему.
кстати, если вы можете перейти в mysqli
Из документов PHP mysql_query возвращает ресурс с успехом (результаты запроса) и логическое FALSE при ошибке. Похоже, что ваш вызов mysql_query (), вероятно, возвращает false, указывая на ошибку с вашим SQL.
Даже подумал, что это не часть вопроса, по соображениям безопасности вы не должны вставлять материал из $ _GET непосредственно в БД. Сначала вам нужно продезинфицировать его. Взгляните на mysql_real_escape_string