比较MySQL行与PHP数组值

比较MySQL行与PHP数组值,php,mysql,arrays,compare,Php,Mysql,Arrays,Compare,我试图将列表中的IP地址与被阻止IP的列表进行比较。如果IP地址等于$blockedIP数组中的地址,则该行不包括在列表中。该列表由mysqli_查询填充。我想做的是,如果IP地址与数组中的一个地址匹配,则排除整行 echo '<div class="genericTable"><h2>Downloaded Sermons Report</h2><table>'; $blockedIP = array('69.58.178.58', '173.1

我试图将列表中的IP地址与被阻止IP的列表进行比较。如果IP地址等于$blockedIP数组中的地址,则该行不包括在列表中。该列表由mysqli_查询填充。我想做的是,如果IP地址与数组中的一个地址匹配,则排除整行

echo '<div class="genericTable"><h2>Downloaded Sermons Report</h2><table>';

$blockedIP = array('69.58.178.58', '173.199.115.123', '173.199.120.99');

foreach($blockedIP as $ip){
$sql = mysqli_query($db, "SELECT * FROM dl_log WHERE ipaddress <> '".$ip."'");

while($row = mysqli_fetch_assoc($sql)){
    echo '<tr>';

    if($row['ipaddress'] !== $ip){
        foreach($row as $each){
            echo '<td class="genericTable">'.$each.'</td>';
        }
    }
    echo '</tr>';
  }
}
echo '</table></div>';
echo“下载布道报告”;
$blockedIP=数组('69.58.178.58','173.199.115.123','173.199.120.99');
foreach($blockedIP作为$ip){
$sql=mysqli_查询($db,“从dl_日志中选择*其中ipaddress'.$ip'”);
while($row=mysqli\u fetch\u assoc($sql)){
回声';
如果($row['ipaddress']!==$ip){
foreach($行作为每个$){
回显“.$”;
}
}
回声';
}
}
回声';
我尝试了几种不同的方法,要么得到整个列表,要么将每一行和每一列与数组进行比较,这样就形成了一个看起来像千斤顶的表。我使用foreach将值与数组进行比较。我应该把它放在哪里? 谢谢

我想做的是,如果IP地址与数组中的一个地址匹配,则排除整行

echo '<div class="genericTable"><h2>Downloaded Sermons Report</h2><table>';

$blockedIP = array('69.58.178.58', '173.199.115.123', '173.199.120.99');

foreach($blockedIP as $ip){
$sql = mysqli_query($db, "SELECT * FROM dl_log WHERE ipaddress <> '".$ip."'");

while($row = mysqli_fetch_assoc($sql)){
    echo '<tr>';

    if($row['ipaddress'] !== $ip){
        foreach($row as $each){
            echo '<td class="genericTable">'.$each.'</td>';
        }
    }
    echo '</tr>';
  }
}
echo '</table></div>';
您有几个选择:

  • 一个使用SQL的查询。将阻止的IP地址压缩为

  • 一个查询,然后在数组()中使用PHP
    过滤结果

    // SQL
    SELECT * FROM dl_log;
    
    // PHP
    if (!in_array($row['ipaddress'], $blockedIP))
    

  • 如果不想打印该行,请更改

    if($row['ipaddress'] !== $ip){
    


    你知道阻止IP是没有意义的对吧?IP!=用户。一个IP可以是百万人,一个人可以对每个请求使用一个新的IP。好吧,如果你想避免争吵,只需在打印争吵之前检查一下……达贡,我不是阻止IP访问,只是阻止IP出现在列表上。整个脚本分析已下载文件的用户的IP、下载时间等。被阻止的IP似乎是搜索引擎机器人。我不想用不必要的数据填满表格。如果你想停止它的搜索引擎,请使用robots.txt文件或useragent分析。更高效的是,机器人IP随时都在变化
    if(!in_array($row['ipaddress'], $blockedIP)){