0

データベーステーブルの列の複数の行に配列値を挿入するプログラムを作成しようとしています。多くの試行錯誤の後、私が望む適切な出力を得ることができませんでした。

私のデータベーステーブルは次のようになります

    id   | values  |
    1    |         |
    2    |         |
    4    |         |
    5    |         |
    6    |         |

2番目の列の値を配列として持っており、それらの値を2番目の列に入力したいと考えています。

出力は次のようになります。

    id   | values  |
    1    |     2   |
    2    |     3   |
    4    |     7   |
    5    |     9   |
    6    |     10  |

だから、私は2つの配列値を持っています$id...だから、それぞれの値ごとに列の各行に入力し$valuesたい$values$id

注:$idデータベースにはすでに入力されています

4

4 に答える 4

1

これを試して :

foreach ( $array as $key => $value )
{
     $query = "INSERT INTO table
                  SET values = $value,
                  id = $key
                  ON DUPLICATE KEY UPDATE values = $value";
}

使用しているデータベースの種類はわかりません。この例は MySQL 用です。

また、DB (単純な mysql_query、pdo、フレームワークなど) に情報を挿入する方法もわかりません。そのため、必要な関数を使用してそのクエリ文字列を渡し、必要に応じて忘れないでください。アレイを適切にサニタイズします。

編集:また、idは主キーまたは一意のインデックスであると想定しています

于 2012-08-28T07:35:46.130 に答える
1

id 値を含む配列があると仮定しています。

次のようなことを試すことができます:

foreach($XArray as $key => $value){

$sql = "UPDATE TABLENEAME ".
       "SET value = $value ".
       "WHERE id = $key" ;

$retval = mysql_query( $sql, $conn );
}

コードはチェックしていません。単なるサンプルです。

更新された質問に関して:

$count=sizeof($value);
for($counter=0;$counter<$count;$counter++){

    $sql = "UPDATE TABLENEAME ".
           "SET value = $value[$counter]".
           "WHERE id = $id[$counter]" ;

    $retval = mysql_query( $sql, $conn ) or die ("Error in query: $sql");
    }
于 2012-08-28T07:36:39.873 に答える
0
foreach($yourArray as $key => $value){
   // <INSERT QUERY LINE HERE > ( you have to insert $value insite 'values' )
}
于 2012-08-28T07:31:57.263 に答える
0

ループ内で配列値をトラバースし、ループの各反復でクエリを作成して実行します。サンプル コードは次のようになります。変数と必要に応じて変更してください。

foreach ($array as $id => $values) {
    $query = "INSERT INTO table (id ,values) VALUES ($id , $values)";
    $result = mysql_query($query);
}
于 2012-08-28T07:35:59.713 に答える