我有SQL表“ip_logs”
我想做什么: 如果成员Ip $ _SERVER ['REMOTE_ADDR']已经在ip_logs表中..这条消息将显示“抱歉!!”
问题是系统总是只检查ip_logs表中的第一个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 !! ';
}
?>
请帮帮我......有什么不对?!
答案 0 :(得分:3)
您想要搜索单个IP,而不是批次。
做类似的事情:
'SELECT routing_ip FROM ip_logs WHERE routing_ip = "'.$_SERVER['REMOTE_ADDR'].'"'
答案 1 :(得分:2)
您是:
相反,您想要:
SQL已具备条件功能(WHERE
),因此请使用它们。
答案 2 :(得分:1)
您使用的是mysql_fetch_array,只需要第一行,您需要使用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 !! ';
}
}
答案 3 :(得分: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 !! ';
}
}
答案 4 :(得分: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 !! ';}
}
}