Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 18.04.2016
Сообщений: 78

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in

20.06.2018, 00:08. Показов 1932. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня проблема с данным кодом, а точнее с запросом, я так понял что тут проблема в самом запросе .(int) $art['id']. как только это убираю и подставляю айди вручную, то всё выводит.
PHP
1
2
3
4
5
6
7
<?php
                $article = mysqli_query($connection, "SELECT * FROM  `article` WHERE `id` = ".(int) $_GET['id']);
            ?>
            <?php
                $art = mysqli_fetch_assoc($article);
                  {
            ?>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    <?php 
        $comments = mysqli_query($connection, "SELECT * FROM `comments` WHERE `article_id` = " .(int) $art['id']. "ORDER BY `id` DESC");
    if(mysqli_num_rows($comments) <=0)
    {
     echo "Нет коментариев";
    }
    while ($comment = mysqli_fetch_assoc($comments))
    {
    ?>
    <article class="article">
        <div class="article_image" style="background-image: url(https://www.gravatar.com/avatar/<?php echo md5($comment['email']); ?>?s=125);"></div>
        <div class="article_info">
            <a href="/article.php?id=<?php echo $comment['article_id']; ?>"><?php echo $comment['author_comment']; ?> </a>
                <div class="article_info_meta"></div>
                <div class="article_info_peview"><?php echo mb_substr(strip_tags($comment['text']), 0, 100,'utf-8'). '...'; ?> </div>
                </div>
                </article>
                <?php
    }
    ?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.06.2018, 00:08
Ответы с готовыми решениями:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
Добрый день, возникает ошибка Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in в следующем коде: ...

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given
Как исправить данную ошибку? Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in...

PHP Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
Выводится ошибка в логах: PHP Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in Кусок...

8
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
20.06.2018, 07:29
Whoami-lammer, ну а кавычки закрыть в sql запросе... не?
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
20.06.2018, 16:38
Whoami-lammer, уверены, что указанный GET-параметр присутствует? Не его значение, а хотя бы сам параметр.

Во втором запросе пробел перед ORDER добавьте. И вы уверены, что $art определена? Может, там тоже нужно указать $_GET?

Учитесь проверять результаты выполнения запросов и делать их отдельно от соответствующей разметки, чтобы в случае ошибки вывести совсем другое содержимое. echo "Нет коментариев"; тоже смотрится как-то неуместно. Обрамите текст хотя бы какими-нибудь тегами. И лучше без echo обойтись, как вы это сделали в цикле ниже. Не очевидную логику тоже лучше не использовать (ветвление перед циклом).

Добавлено через 9 минут
Цитата Сообщение от Phantom-84 Посмотреть сообщение
уверены, что указанный GET-параметр присутствует?
Речь о реакции вашего скрипта на запрос по адресу /article.php. Нужно всегда учитывать возможность прямого обращения, а не только обращения по ссылкам, присутствующим на вашем сайте.
0
1 / 1 / 0
Регистрация: 18.04.2016
Сообщений: 78
20.06.2018, 21:36  [ТС]
Phantom-84, так?
PHP
1
.(int)htmlspecialchars($_GET[$art['id']]).
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
21.06.2018, 00:33
Нет.

Добавлено через 1 минуту
Функция тут не нужна.

$art откуда берется?

Добавлено через 4 минуты
Увидел, откуда. Тогда у вас было правильно. Можно даже (int) перед $art['id'] убрать, если поле id в базе данных числовое или гарантированно содержащее число.

Добавлено через 3 минуты
Но если вам изначально передадут несуществующий идентификатор или возникнет какая-то другая ошибка во время выполнения запроса, все "поломается". Именно поэтому так важно обрабатывать ошибки, о чем я выше писал.

Добавлено через 10 минут
Если !isset($_GET['id']) - ошибка несуществующей страницы (404) или совсем другая логика, например выдача списка статей вместо отдельной статьи.
Если !$article - критическая ошибка с просьбой зайти попозже (503).
Если !$art - ошибка несуществующей страницы (404).
0
1 / 1 / 0
Регистрация: 18.04.2016
Сообщений: 78
21.06.2018, 00:41  [ТС]
Phantom-84, Если не ошибаюсь, я ставлю (int) против SQL инъекци, а $art у меня только на данной странице и да по переходу у меня тоже в href стоит (int). Хочу еще поинтересоваться (int) нужная вещь?
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
21.06.2018, 00:53
В первом запросе оставьте (int), т.к. вы получаете параметр извне, а во втором вы уже получаете тот же самый идентификатор из базы данных, поэтому (int) бесполезен.

Добавлено через 2 минуты
в href тоже не нужен, если речь о чем-то вроде href="/article.php?id=<?php echo $comment['article_id']; ?>".

Добавлено через 7 минут
Иногда используют какой-нибудь подобный метод представления, если пишут абстрактный шаблон и не уверены в выводимом значении, но для идентификаторов можно смело использовать "сырое" значение без прослойки, т.е. без указания метода представления.
0
1 / 1 / 0
Регистрация: 18.04.2016
Сообщений: 78
21.06.2018, 01:10  [ТС]
Phantom-84, Я убрал (int) ошибки те же, я не совсем понимаю ваши слова
"Если !isset($_GET['id']) - ошибка несуществующей страницы (404) или совсем другая логика, например выдача списка статей вместо отдельной статьи.
Если !$article - критическая ошибка с просьбой зайти попозже (503).
Если !$art - ошибка несуществующей страницы (404)"
это нужно как-то в коде прописать и получить данные ошибки, чтобы узнать какая именно?
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in
PHP
1
2
3
4
if(mysqli_num_rows($comments) <=0)
    {
     echo "Нет комментариев";
    }
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
    while ($comment = mysqli_fetch_assoc($comments))
    {
    ?>
    <article class="article">
        <div class="article_image" style="background-image: url(https://www.gravatar.com/avatar/<?php echo md5($comment['email']); ?>?s=125);"></div>
        <div class="article_info">
            <a href="/article.php?id=<?php echo $comment['article_id']; ?>"><?php echo $comment['author_comment']; ?> </a>
                <div class="article_info_meta"></div>
                <div class="article_info_peview"><?php echo mb_substr(strip_tags($comment['text']), 0, 100,'utf-8'). '...'; ?> </div>
                </div>
                </article>
                <?php
    }
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
21.06.2018, 01:38
Цитата Сообщение от Whoami-lammer Посмотреть сообщение
это нужно как-то в коде прописать и получить данные ошибки, чтобы узнать какая именно?
Это условия, которые нужно проверять, и реакции на их положительную проверку. Естественно, все в коде прописываете.

Ошибка при выполнении запроса. Добавили пробел перед ORDER? Обработку ошибок в любом случае нужно делать, потому что даже если ошибки не будут возникать при одних обстоятельствах, они могут возникнуть при других обстоятельствах. Это основы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.06.2018, 01:38
Помогаю со студенческими работами здесь

Ошибка Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\qwerty\
Вылезает вот такая ошибка: &quot;Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in...

ошибка Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in W:\domains\test.ru\index
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in W:\domains\test.ru\index.php on line 11 ...

Mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given
Работаю на Easy PhP. При написании кода представленного ниже браузер выводит ошибку: mysqli_fetch_assoc() expects parameter 1 to be...

mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given
Ошибка помогите пожалуйста исправить Notice: Undefined index: nnnn in D:\xampp\htdocs\testing\admin\admin.php on line 172 Warning:...

Mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\OpenServer\domains\localhost
Здравствуйте, на странице выдает такую ошибку Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru