X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Ошибка при выводе цикла
cap4369
cap4369
Topic Starter сообщение 30.11.2013, 22:50; Ответить: cap4369
Сообщение #1


Здравствуйте! Помогите разобраться, что за ошибка при выводе цикла.
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, integer given in Z:\home\lapkovsky\www\classes\blysc.php on line 69.
Сам скрипт вывода цикла такой:
$query = mysql_query("SELECT *
     FROM `comments_fest`
     WHERE `visible` = '1'
     ORDER BY `date`") or die(mysql_error());
$res = mysql_num_rows($query);
echo '<div class="comments">
<h2>Комментарии (' .$res. ')</h2>';

if($res > 0) {
while($row = mysql_fetch_assoc($res)) {
  echo '<div class="comment_table">';
  printf("<p>%s %s<p></p><p>%s</p>",$row['date'],$row['name'],$row['comment']);
  echo '</div><!-- .comment_table -->';
}
}
else {
echo '<p>Комментариев пока нет.</p>';
}
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isvetlichniy
isvetlichniy
сообщение 1.12.2013, 0:07; Ответить: isvetlichniy
Сообщение #2


$query = mysql_query("SELECT *
         FROM `comments_fest`
         WHERE `visible` = '1'
         ORDER BY `date`") or die(mysql_error());
$res = mysql_query($query);
echo '<div class="comments">
<h2>Комментарии (' .mysql_num_rows($res). ')</h2>';
if($res > 0) {
while($row = mysql_fetch_array($res)) {
  echo '<div class="comment_table">';
  printf("<p>%s %s<p></p><p>%s</p>",$row['date'],$row['name'],$row['comment']);
  echo '</div><!-- .comment_table -->';
}
}
else {
echo '<p>Комментариев пока нет.</p>';
}


вэлкам
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cap4369
cap4369
Topic Starter сообщение 1.12.2013, 1:55; Ответить: cap4369
Сообщение #3


Так тоже не получается, выдает ошибку.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cap4369
cap4369
Topic Starter сообщение 1.12.2013, 12:29; Ответить: cap4369
Сообщение #4


Спасибо, разобрался!
Я сделал так:
$query = mysql_query( "SELECT * FROM `comments_fest` WHERE `visible` = '1' ORDER BY `date`") or die(mysql_error());
$res = mysql_num_rows($query);
echo '<h2>Комментарии('.$res.')</h2>';
echo '<div class="comment">';
if($res){
while($row = mysql_fetch_assoc($query)) {
  echo '<div class="comment_table">';
  printf("<div class='comment_data'><span>%s</span> %s</div><div class='comment_text'>%s</div>",$row['date'],$row['name'],$row['comment']);
  echo '</div>';
}
}
else {
echo '<p>Комментариев пока нет. Вы можете быть первым.</p>';
}
echo '</div><!-- .comment -->';

Моя ошибка была в том, что я переменной $res присвоил значение количества полей функцией mysql_num_rows, а потом пытался вывести ее же в цикле. А введя переменную $row, которая является ассоциативным массивом sql запроса, вывел ее в цикле. Обидно, что я знал это, да вот только сам зациклился :), надо было отдохнуть и поглядеть свежим взглядом. Еще раз спасибо.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 1.12.2013, 12:36; Ответить: yury_mw
Сообщение #5


[member=cap4369],
ошибка, т.е. Warning (предупреждение) на чистом англ языке вам сообщает, что функция mysql_fetch_assoc() хочет параметр в виде ресурса, а вместо этого вы ей даете целое число.
Ресурс — это результат выполнения запроса к БД, т.е. то, что выдает mysql_query(). У вас он лежит в переменной $query. А в переменную $res вы помещаете, то что выдает функция mysql_num_rows($query), т.е. кол-во строк в результате запроса, что действительно целое число.

Поэтому замените в строке, где вы обращаетесь к mysql_fetch_assoc():
while($row = mysql_fetch_assoc($res)) {

$res на $query и данная ошибка будет исправлена.

Пока писал ответ, вы и сами разобрались.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на первый заказ.
Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на п
7 stu999 1758 31.3.2024, 11:19
автор: stu999
Открытая тема (нет новых ответов) Получил странную ссылку при линкбилдинге
Как поведет себя поиск при обнаружении странной ссылке?
10 r0mZet 2206 24.10.2022, 19:23
автор: Wachowski
Горячая тема (нет новых ответов) 300 площадок под вечные ссылки на выбор: ТИЦ 20-9400, PR 0-6, ЯК, DMOZ. Скидки при пакетном заказе!
65 inkon 30394 19.7.2022, 13:41
автор: Funoman
Горячая тема (нет новых ответов) тИЦ отменили! Новый показатель Яндекса ИКС! Лучшие площадки под размещение. Бесплатное написание статей при любом заказе.
Эксклюзивное предложение. Успей получить написание статей БЕСПЛАТНО
71 VIMstat 78506 21.6.2022, 9:38
автор: VIMstat
Открытая тема (нет новых ответов) Отображение нужного блока при клике.
0 bhtml 1673 10.7.2020, 15:18
автор: -bhtml-


 



RSS Текстовая версия Сейчас: 25.4.2024, 11:18
Дизайн