这似乎对任何人都不复杂,但它对我来说。复杂的Mysql查询 - PHP
我有一个使用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']
。
目前我的代码不这样做!当$IdArray
中的数字存储在ids
表中时,它所做的只是存储YES
。所以当查询运行时(使用上面的相同变量)$secondArray
将存储这个['YES','YES']
。
当号码没有存储在ids
表中时,我如何获得它以将NO
存储到$secondArray
中?
这是预期的行为。 – hjpotter92
为什么要麻烦评论?显然我在问一个问题。你没看过最后一句话吗? – user2861085