这对其他人来说似乎并不复杂,但对我而言。
我有一个使用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
表中,那么YES
$secondArray
。$IdArray
。但如果ids
中的某个数字未存储在NO
表中,则会将$storedArray
存储到$IdArray
。
对于一个小例子,(就我想要发生的事情)正如我前面所说的那样,让我们说['0','1','2','3']
包含ids
。
表1
中存储了数字3
和$storedArray
。因此,当查询运行时,['NO','YES','NO','YES']
将包含此YES
。
目前我的代码不会这样做!当来自$IdArray
的数字存储在ids
表中时,它只会存储$secondArray
。因此,当运行查询时(使用上面的相同变量)['YES','YES']
将存储此NO
。
如果号码未存储在$secondArray
表格中,如何将ids
存储到{{1}}?
答案 0 :(得分:0)
首先根据$IdArray
:
$secondArray = array_fill_keys($IdArray, "NO");
然后使用您的查询和循环将元素更改为表中存在的每一行的YES
。
while ($row = mysql_fetch_array($results) {
$secondArray[$row['id']] = "YES";
}