Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Не работает вывод else
$sqlp='SELECT login,email FROM users WHERE login = :login ';
$sth=$bd->prepare($sqlp);
$sth->execute($parametersp);
while($row=$sth->fetchall(PDO::FETCH_ASSOC))
foreach($rowas$dataa){
if($sth->columnCount()> 0)
{$message="Пользователь c таким логином найден";}else{$message="Пользователь с таким логином не найден";}
}
}
KingStar
Отправлено: 29 Мая, 2015 - 00:35:47
Участник
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
потому что ты делаешь запрос, и есть поле найдено - то оно обрабатывается в цикле while, а потом еще и в foreach, где и выводит соответствующее сообщение
если не найдено - то в while цикла нет, и до foreach ничего не доходит, а следовательно и выводить нечего
----- То что программа работает, не означает что она написана правильно!
Александерр
Отправлено: 29 Мая, 2015 - 21:06:32
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2015
Помог: 0 раз(а)
KingStar пишет:
потому что ты делаешь запрос, и есть поле найдено - то оно обрабатывается в цикле while, а потом еще и в foreach, где и выводит соответствующее сообщение
если не найдено - то в while цикла нет, и до foreach ничего не доходит, а следовательно и выводить нечего
$sqlp='SELECT * FROM users WHERE login = :login ';
$sth=$bd->prepare($sqlp);
$sth->execute($parametersp);
foreach($sthas$dataa){
if($sth->columnCount()>0)
{$message="Пользователь c таким логином найден";}else
{$message="Пользователь с таким логином не найден";}
}
}
Sail
Отправлено: 30 Мая, 2015 - 11:39:55
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
Александерр, количество полученных в результате запроса записей набора надо анализировать до цикла обхода этих записей (будь то while или foreach). (Добавление)
Ну или проверять, что цикл успешно пройден мимо, без захода в его тело... (Добавление)
Если уж сложно (или вовсе невозможно из-за особенностей реализации) проверить возвращенное функцией "somedbObertka::execute()" значение.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.