[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysql_num_rows(mysql_query( возвращает только =1
Gadzilla
Элемент авторизации. После перехода на страницу, берется IP юзера, ищется в базе, и сверяется значение STATUS. Если = 1, пропускает. Если = 0, выкидывает на страницу авторизации. Все время возвращает результат 1.
Код:
$ipa = $_SERVER['REMOTE_ADDR'];//узнаем ip адрес юзера 
$status = mysql_num_rows(mysql_query("SELECT 'status' FROM a_user WHERE ip='".$ipa."'"));
if($status=$one){
echo "Все ОК. ";
}
else
{
echo "<script>location.href='logpass.php';</script> ";
}




Спустя 3 минуты, 7 секунд (6.03.2011 - 14:13) Trianon написал(а):
Вы проверяете не значение поля STATUS , а mysql_num_rows - число строк, которые вернул запрос.

Запрос возвращает всё время одну строку (неважно с единичкой или с нулем - строка-то одна)
Поэтому и результат одинаковый.

Спустя 10 минут, 14 секунд (6.03.2011 - 14:23) Gadzilla написал(а):
Большое спасибо. А каким запросом проверить значение?

Спустя 12 минут, 37 секунд (6.03.2011 - 14:35) T1grOK написал(а):

$res = mysql_query("SELECT 'status' FROM a_user WHERE ip='".$ipa."'");
if (mysql_num_rows($res) ==1){
$row = mysql_fetch_assoc($res);

if($row['status'] == $one){
echo "Все ОК. ";
}else{
echo "<script>location.href='logpass.php';</script> ";
}
}
else{
//ну а тут че то делается, если вообще записи такой нету
}

Спустя 25 минут, 15 секунд (6.03.2011 - 15:01) Invis1ble написал(а):
Конечно, вместо сравнения - присвоение =) Вот оно true постоянно и выдавало

Спустя 9 минут, 11 секунд (6.03.2011 - 15:10) Invis1ble написал(а):
мне кажется, в данном случае лучше таким запросом:
select count(*) from `a_user` where `ip`='ip' and `status`=1

потом проверяем результат:
if (mysql_result($res, 0) > 0)
{
// можно пускать
}

Спустя 4 часа, 20 минут, 36 секунд (6.03.2011 - 19:30) Gadzilla написал(а):
Попробовал как вы описали:
Wrong parameter count for mysql_result()


Вариант T1grOK'а почему-то всегда перебрасывает на страницу logpass.php (т.е. условие не выполняется, и переходит на else).

Спустя 28 минут, 39 секунд (6.03.2011 - 19:59) T1grOK написал(а):
Смотрите откуда берется у вас переменная $one, я просто по вашему примеру прикрутил и все. А вообще более разумно использовать вместо:

if($row['status'] == $one){

Это

if($row['status'] == 1){
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.