SQL OR语句在PHP中不起作用

时间:2018-02-19 17:09:11

标签: php sql mysqli

我想从数据库中获取一些元素(phpmyadmin)。数据库" top"设置如下:

ID  || Name
____________
1   || Home

2   || About

3   || Users

4   || Admin

...

我使用以下代码获取信息:

<?php
    $sql = "SELECT ID
            FROM top
            WHERE Name='Users' OR Name='Admin'";
    $query = mysqli_query($dbconnect, $sql); 
    $oq = mysqli_fetch_assoc($query);

    if(in_array($_GET['ID'], $oq)){
     //Execute some Code
    }
?>

如果我执行sql-code,我会得到我想要的结果(ID 3和4),但是在&#34; $ oq&#34;只剩下一个元素(第一个 - > 3)。因此,我想要执行的代码只显示一次。

2 个答案:

答案 0 :(得分:2)

你必须使用while循环:

$oq = array();
while($row = mysqli_fetch_assoc($query)) {
    echo $row['ID'];
    $oq[] = $row['ID'];
}

正如您所做的那样,您只需在$oq中获取一行。您必须将每个值添加到数组$oq,才能使用in_array()进行测试。

您可以在此处使用其他一些技术,例如,您可以根据需要获取所有内容(数组数组)并循环遍历数组。

答案 1 :(得分:0)

您必须使用具有多个DB值的数组

 $values=array();
 while($row = mysql_fetch_array($result)){

 $values = array('ID'=>$row['ID']);

 }