0

私は仕事と子供の後の趣味としてPHPプログラミングを取り上げました。したがって、このコードが偽物である場合はお詫びします...しかし、私はしばらくの間探していました。とにかく、私は2つの配列の値を比較しようとしています...各キー値が別のキー値と等しい場合、その値を「1」に更新したいと思います。したがって、たとえば、1つの配列では、値は(2、4、1)であり、2番目の配列では(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 に答える