Php SQL总是只检查第一个结果

Php SQL总是只检查第一个结果,php,sql,Php,Sql,我有SQL表“ip_日志” 我想做的是: 如果成员Ip$\u服务器['REMOTE\u ADDR']已在Ip\u日志表中..此消息将显示“对不起!!” 问题是系统总是只检查IP_日志表中的第一个IP 我的代码是: <? $link=mysql_connect("localhost","DBUSER","DBPASS","DBNAME") ; mysql_select_db("DBNAME",$link) ; $sql=mysql_query("SELECT * FROM

我有SQL表“ip_日志”

我想做的是: 如果成员Ip$\u服务器['REMOTE\u ADDR']已在Ip\u日志表中..此消息将显示“对不起!!”

问题是系统总是只检查IP_日志表中的第一个IP

我的代码是:

<?
  $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 !! ';
}
?>


请帮帮我…怎么了

您希望搜索单个IP,而不是批处理

做一些类似于:

'SELECT routing_ip FROM ip_logs WHERE routing_ip = "'.$_SERVER['REMOTE_ADDR'].'"'
您使用的fech仅为第一行,您需要使用:

试试这个:

$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 !! ';
    }
}
$sql=mysql\u查询(“从ip\u日志中选择*);
对于($x=1;$x您是:

  • 查询所有记录
  • 检索(仅)第一个结果
  • 检查一下你的情况
相反,您希望:

  • 查询一条与您的条件匹配的记录

SQL已经具有条件功能(
其中
),所以请使用它们。

将IP地址存储为实际数字,而不是虚线四元表示法中的字符串
$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 !! ';}
}

}
$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 !! ';}
}

}