-1

这对其他人来说可能并不复杂,但对我来说是这样。

我有一个使用该IN子句的 mysql 查询。它从与 PHP 数组匹配的表中收集所有数据。该数组称为$IdArray。对于这个例子的目的,让我们说$IdArray包含这些变量,['0','1','2','3']. 所以这是我使用查询的代码,

    $secondArray = array();
    function apply_quotes($item){
        return "'" . mysql_real_escape_string($item) . "'";
    }
    $idQuotes = array_map('apply_quotes', $IdArray); 
    $query = "SELECT * FROM ids WHERE id IN (" . join(',', $idQuotes) . ")";
    $results = mysql_query($query);
    while($row = mysql_fetch_array($results)){
        if($row['id']){
                $secondArray[] = "YES";
        }
        else{
                $secondArray[] = "NO";
             }
     }//end while loop

如您所知,我更改了它,$IdArray因此可以将其放入mysql_query()函数中。现在$secondArray是一个数组,我试图将响应存储在其中。我想要做的是,如果存储在其中的数字之一$IdArray存储在ids表中,则将 a YESinto 放入$secondArray。但是,如果 中的数字$IdArray未存储在ids表中,它将存储 a NOinto $storedArray

举个小例子,(对于我想要发生的事情)正如我之前所说的,让我们说$IdArraycontains ['0','1','2','3']。在表ids编号13存储。因此,当查询运行$storedArray时将包含 this ['NO','YES','NO','YES']

目前我的代码不这样做!它所做的只是在表中存储YES一个数字时$IdArray存储。ids因此,当查询运行时(使用上面相同的变量)$secondArray将存储 this ['YES','YES']

当数字未存储在表中时,如何将其存储NO到?$secondArrayids

4

1 回答 1

0

首先根据以下值填写您的数组$IdArray

$secondArray = array_fill_keys($IdArray, "NO");

然后使用您的查询和循环将元素更改YES为表中存在的每一行。

while ($row = mysql_fetch_array($results) {
    $secondArray[$row['id']] = "YES";
}
于 2013-10-24T02:32:43.543 回答