2012-02-25 2 views
0

У меня есть SQL таблица "ip_logs"SQL всегда проверять первый результат только

enter image description here

Что я пытаюсь сделать: если член Ip $ _SERVER [ 'REMOTE_ADDR'], уже в ip_logs table..this появится сообщение «Извините !!»

проблема заключается в том что система всегда проверяет первый IP только в таблице ip_logs

Мой код:

<? 
    $link=mysql_connect("localhost","DBUSER","DBPASS","DBNAME") ; 
    mysql_select_db("DBNAME",$link) ; 

    $sql=mysql_query("SELECT * FROM ip_logs"); 
    $rexu=mysql_fetch_array($sql); 

if($rexu[routing_ip]=="".$_SERVER['REMOTE_ADDR']."") { 
echo ' Sorry !! '; 
} 
?> 

Пожалуйста, помогите мне .. что это не так?!

+0

Хранить IP-адреса в качестве действительных цифр, а не как строки в виде точечно-квадратной нотации –

ответ

3

Вы хотите найти один IP-адрес, а не пакет.

ли что-то вроде:

'SELECT routing_ip FROM ip_logs WHERE routing_ip = "'.$_SERVER['REMOTE_ADDR'].'"' 
1

вы используете mysql_fetch_array которые fech только первую строку, вам нужно использовать fetchAll:

$sql=mysql_query("SELECT * FROM ip_logs"); 
$stmt = $db->query($sql); 
$results = $stmt->fetchAll(); 

    foreach($results as $result){ 
     if($result[routing_ip]=="".$_SERVER['REMOTE_ADDR']."") { 
       echo ' Sorry !! '; 
     } 

    } 
1

Попробуйте это:

$sql=mysql_query("SELECT * FROM ip_logs"); 

for($x = 1 ; $x <= mysql_num_rows($sql) ; $x++){ 
    $row = mysql_fetch_assoc($sql); 
    if($row[routing_ip]=="".$_SERVER['REMOTE_ADDR']."") { 
     echo ' Sorry !! '; 
    } 
} 
2

You 're:

  • Запрашивание все записи
  • Получение (только) первый результат
  • Проверка его от вашего состояния

Вместо этого, вы хотите:

  • Query для одного запись, соответствующая вашему состоянию

SQL уже имеет возможности условий (WHERE), поэтому используйте их.

1
$sql= mysql_query("SELECT * FROM ip_logs"); 

if ($sql != NULL && mysql_num_rows($sql)>0) 
{ 

while ($row = mysql_fetch_object($sql)) 
{ 
if ($row->routing_ip == $_SERVER['REMOTE_ADDR']) { echo ' Sorry !! ';} 
} 

} 
Смежные вопросы