我已经将PHP编程作为下班后和孩子们的业余爱好。所以,如果这段代码是伪造的,我的抱怨......但我一直在寻找一段时间。无论如何,我试图比较两个数组中的值和...其中每个键值等于另一个我想将该值更新为' 1'。因此,例如,在一个数组中,值是(2,4,1),第二个是(3,4,5)。之后,我的sql列中的值将更新为(2,1,1)。这是我的代码。感谢您的任何帮助!
$array1 = mysql_fetch_array($x);
$array2 = mysql_fetch_array($x1);
foreach($array1 as $key => $value)
{
if($value == $array2[$key])
{
$v = "UPDATE fXnumber SET xnumber = '1'";
mysql_query($v);
}
}
答案 0 :(得分:0)
检查更新记录将更新的标识符的表集ID时
$array1 = mysql_fetch_array($x);
$array2 = mysql_fetch_array($x1);
foreach($array1 as $key => $value)
{
if (isset($array2[$key]) && $value == $array2[$key])
{
$v = "UPDATE fXnumber SET xnumber = 1 WHERE id = '{$key}'";
mysql_query($v);
}
}
答案 1 :(得分:0)
这是您的代码版本,具有增强的可重用性。我添加了一个(当前无效的)'WHERE'子句。我假设您建议的版本中的sql语句不仅按预期和期望更新数据库表中的单个值,而且还更新该表内的_all值。您很可能希望指定要更新的条目:
$array1 = mysql_fetch_array($x);
$array2 = mysql_fetch_array($x1);
foreach(array_keys($array1) as $key)
{
if ( $array1[$key]==$array2[$key] )
{
$v = sprintf("UPDATE fXnumber SET xnumber=1 WHERE id=%s", $key);
mysql_query($v);
}
}
另一个提示:phps旧的mysql扩展名是折旧的。它有很多问题。考虑使用较新的mysqli扩展,或者更好的是,使用PDO抽象层。它可以保护您免受代码注入等。
答案 2 :(得分:-1)
对于数组比较array_diff可能会有所帮助。