2016-03-21 7 views
1

私のSQLテーブル複数の行foreachループでアップデート

table->requirement 

id  label_name  label_value  requirement_id 
103   budget   5000     4   
104  specialist  dentist    4   
105  treatment  clinic    4   
106  expertise  criminal    5   
107  charges   5100     5   

私はmysql-phpで、この中label_valueにこのテーブルを更新しようとしています。

私はこのコードをPHPで試しましたが、動作しています。

foreach ($data as $columnName => $colValue) { 
    echo $subQuery .= "UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id')"; 
    mysql_query($subQuery); 
    } 

出力 -

UPDATE requirement SET label_value = '医師' ゲッティング(label_name = '専門家' AND requirement_id = '2')

UPDATE requirement SET label_value = '医師'ここで、(label_name = 'スペシャリスト' AND requirement_id = '2')

UPDATE requirement「あなたの家には」SET label_value =(label_nameは=「予定」AND requirement_id =「2」)

私はこれが正しいかどうか知らないが、私は形で、このテーブルを更新する必要があります。私を助けてください。

+1

まあ無requirement_id 2を学ぶ存在します! – Saty

+0

私はこのrequirement_id 2が利用可能であることを確認しました –

+0

そして毎回あなたのクエリを連結するので '。=" UPDATE "から' .'を削除してください – Saty

答えて

2

..= "UPDATEから削除する必要があります。これはクエリを連結するためです。

ループの最初のitrationにとっては

UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id' 

このクエリ作品を生成しますが、2番目itrationのためには、これは間違った構文は

UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id' UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id' 

で生成されます。

使お

foreach ($data as $columnName => $colValue) { 
    echo $subQuery = "UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id')"; 
    mysql_query($subQuery); 
    } 

mysqlのは

を廃止予定されているのでmysqli or pdoを学ぶために試してみてください。また、あなたのテーブルにmysqli_multi_query

+1

私はあなたの投票を落としませんでした。あなたがすぐに私の問題を抱えてくれてありがとう –

関連する問題