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

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

  Все выпуски  

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


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

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

Лучшие эксперты данной рассылки

vladisslav
Статус: 8-й класс
Рейтинг: 1325
∙ повысить рейтинг »
Жерар
Статус: Специалист
Рейтинг: 1166
∙ повысить рейтинг »
amnick
Статус: Профессионал
Рейтинг: 714
∙ повысить рейтинг »

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

Номер выпуска:1228
Дата выхода:07.04.2011, 07:00
Администратор рассылки:Устинов С.Е. (Профессионал)
Подписчиков / экспертов:297 / 144
Вопросов / ответов:1 / 1

Вопрос № 182692: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: В моем скрипте, приведу его часть, не работает часть кода: while ($next_links = mysql_fetch_array($all_links, MYSQL_NUM)) { if ($next_links = 0)


Вопрос № 182692:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
В моем скрипте, приведу его часть, не работает часть кода:
while ($next_links = mysql_fetch_array($all_links, MYSQL_NUM))
{
if ($next_links = 0)
{
echo 'Таких строк нет!';
}
Не работает условие if. Дальше идет условие else, которое выполняется. После выполнения else, я делаю проверку, то есть запускаю скрипт заново. Должно выполниться условие if, так как все выбранные значения удаляются и я должен получить ответ, что строки все удалены. И они на самом деле удалены. Но не получаю этого ответа. Предполагаю, что неправильный синтаксис аргумента в строке: if ($next_links = 0), так как я из массива пытаюсь получить строку. Подскажите, как сделать правильно.

Отправлен: 02.04.2011, 06:28
Вопрос задал: rock (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Жерар (Специалист) :
Здравствуйте, rock!

Оператор сравнения - ==, то есть правильно будет так:
Код:

while ($next_links = mysql_fetch_array($all_links, MYSQL_NUM))
{
if ($next_links == 0)
{
echo 'Таких строк нет!';
}

Но даже и в этом случае код будет работать не совсем так, как требуется. Ведь если mysql_fetch_array возвращает FALSE (когда в результате запроса $all_links нет ни одного ряда или все ряды уже пройдены), то цикл while не будет больше выполнен ни разу и до if ($next_links == 0) очередь не дойдет. Правильнее, на мой взгляд, будет сделать так:
Код:

if (mysql_num_rows($all_links) == 0)
{
echo 'Таких строк нет!';
}
else
{
while ($next_links = mysql_fetch_array($all_links, MYSQL_NUM))
{
Код обработки $next_links
}
}

Ответ отправил: Жерар (Специалист)
Ответ отправлен: 02.04.2011, 07:17
Номер ответа: 266503
Россия, Томск
Тел.: 8-923-411-36-58

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


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

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

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

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

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

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

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



    В избранное