0

在工作和孩子之后,我将 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);
}


}
4

3 回答 3

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);
    }
}
于 2012-11-17T16:51:58.387 回答
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 抽象层。它可以保护您免受代码注入等的影响。

于 2012-11-17T16:52:39.953 回答
-1

对于数组比较array_diff可能会有所帮助。

于 2012-11-17T16:53:58.957 回答