Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

vladisslav
Статус: 5-й класс
Рейтинг: 1084
∙ повысить рейтинг »
amnick
Статус: 8-й класс
Рейтинг: 470
∙ повысить рейтинг »
Волков Алексей aka Lupo
Статус: 5-й класс
Рейтинг: 367
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / PHP

Номер выпуска:1195
Дата выхода:29.01.2010, 23:00
Администратор рассылки:Товарищ Бородин, Модератор
Подписчиков / экспертов:643 / 201
Вопросов / ответов:1 / 2
IRC-канал по теме:#php

Вопрос № 176272: что здесь не так? мне выдают ошибку

© Цитата:

Вопрос № 176272:

что здесь не так?
мне выдают ошибку

© Цитата:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\zac\www\comment_news.php on line 53
Возникла ошибка -
1


получается я добавляю комментарий с сайта в базу

-----------------

Код:
<?php  include ("blocks/bd.php");

if (isset($_POST['author']))
{
$author = $_POST['author'];
}

if (isset($_POST['text']))
{
$text = $_POST['text'];
}

if (isset($_POST['pr']))
{
$pr = $_POST['pr'];
}

if (isset($_POST['sub_com']))
{
$sub_com = $_POST['sub_com'];
}

if (isset($_POST['id']))
{
$id = $_POST['id'];
}

if (isset($sub_com))
{
if (isset($author)) {trim($author); }
else {$author = "";}

if (isset($text)) {trim($text); }
else {$text = "";}

if (empty($author) or empty($text))
{
exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}

$author = stripslashes($author);
$text = stripslashes($text);
$author = htmlspecialchars($author);
$text = htmlspecialchars($text);

$result = mysql_query ("SELECT sum FROM captcha& quot;,$db);
$myrow = mysql_fetch_array($result);

if ($pr == $myrow["sum"])
{
$date = date("Y-m-d");
$result2 = mysql_query ("INSERT INTO comments_news (id_news,author,text,date) VALUES ('$id','$author','$text','$date')",$db);
$myrow3 = mysql_fetch_array ($result2);

if(!$myrow3)
{
echo "Возникла ошибка - ".mysql_error()."<br>";
echo $result2;
exit();
}

$address = "djhottabych@gmail.com";
$subject = "Новый комментраий на сайте";
$result3 = mysql_query ("SELECT title FROM news WHERE id='$id'",$db);
$myrow4 = mysql_fetch_array ($result3);
$post_title = $myrow4["title"];
$message = "Появился комментарий к новости - ".$title."\nКомментарий добавил(а): ".$author."\nТекст комментария: ".$text."\nСсылка на новость: http://zac/view_news.php?id=& quot;.$id."";
mail($address,$subject,$message,"Content-type:text/plain; Charset=utf-8r\n");

echo "<html><head>
<meta http-equiv='Refresh' content='0; URL=view_news.php?id=$id'>
</head></html>";
exit();


}
else
{
exit ("<p>Вы ввели не верную сумму цифр с картинки на предыдущей странице. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}



}

?>

Отправлен: 24.01.2010, 21:55
Вопрос задал: Hottabych, Посетитель
Всего ответов: 2
Страница вопроса »


Отвечает Товарищ Бородин, Модератор :
Здравствуйте, Hottabych.
Ну еще бы Ваш код работал!
В 52-ой строке Вы выполняете функцию mysql_query, которой передаете запрос "INSERT ...". В 53-ей строке Вы пытаетесь результат выполнения функции mysql_query из строки 52 передать функции mysql_fetch_array в строке 53. В данном случае этого делать нельзя. Этой функции можно передавать результаты выборки, то есть, результаты работы функции mysql_query с запросом "SELECT ...". Поэтому интерпретатор и выкидывает грязное ругательство по поводу того, что передаваемый аргумент не является правильным ресурсом(пардон за мой английский, или вернее перевод с оного).

К сожалению, посоветовать Вам тут ничего не могу, кроме как убрать сию конструкцию, ибо не знаю, что Вы пытались сказать строками 52-53.
С уважением, Товарищ Бородин

Ответ отправил: Товарищ Бородин, Модератор
Ответ отправлен: 24.01.2010, 23:05
Номер ответа: 258927
Россия, Новосибирск
Тел.: 7-923-245-3366
ICQ # 346988855

Оценка ответа: 3

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258927 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает vladisslav, 5-й класс :
    Здравствуйте, Hottabych.
    Замените строки
    Код:
    $myrow3 = mysql_fetch_array ($result2);

    if(!$myrow3)

    на
    Код:
    if($result2==false)

    или на
    Код:
    if(!$result2)

    Если хотите проверить был ли INSERT успешным. mysql_query() в случае запроса insert/delete возвращает не о бъект Resouce, а переменную со значением true/false

    Ответ отправил: vladisslav, 5-й класс
    Ответ отправлен: 25.01.2010, 09:17
    Номер ответа: 258932

    Оценка ответа: 5
    Комментарий к оценке:
    работает, спасибо

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258932 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.14 от 23.01.2010

    В избранное