2017-11-29 11 views
-4

一つのプロセスでいくつかの式で複数のデータを更新しますか? ここに私のテーブル(tbmath)PHP MySQLiを - mysqliのテーブルに多くの行を更新する方法

|id | code |a | b | c | 
| 1 | 1  |11 | 11 |  | 
| 2 | 1  |12 | 22 |  | 
| 3 | 1  |13 | 33 |  | 
| 1 | 2  |11 | 11 |  | 
| 2 | 2  |12 | 22 |  | 
| 3 | 2  |13 | 33 |  | 

... コードは、運用ルール コード1 = A + Bのためです。 コード2 = a x b;

最初のコード= 1とCを更新するイムtry'n、しかし、私は間違った結果を持っている、誰かがこのコードを修正するか、私になぜ問題を解決する権利を与えるために私を助けることができると思います。 ここに私のコード:

<?php 
$db_host="localhost"; 
$db_user="root"; 
$db_pass=""; 
$db_database="test"; 
$con = new 
mysqli($db_host,$db_user,$db_pass,$db_database); 

$sql=mysqli_query($con,"SELECT * FROM tbmath 
WHERE code = 1"); 
while ($a=mysqli_fetch_assoc($sql)) 
{ 
    $c=$a['a']+$a['b']; 
    mysqli_query($con,"UPDATE `tbmath` SET `c` = '$c' 
    WHERE `code` = 1"); 
} 
?> 

結果は次のとおりです。

|id | code | a | b | c | 
| 1 | 1  |11 | 11 |46 | 
| 2 | 1  |12 | 22 |46 | 
| 3 | 1  |13 | 33 |46 | 
| 1 | 2  |11 | 11 | | 
| 2 | 2  |12 | 22 | | 
| 3 | 2  |13 | 33 | | 

私のコードは、わずか13 + 33

最後の結果を計算する私の場合のための右のPHPコードは何ですか? 私はあなたがあなたのところの基準ではなく、コードフィールドにIDフィールドのparamを使用する必要があります

+1

これをすべてデータベースに保存する理由は何ですか? 1組の値と、別々の操作テーブルが必要です。しかし、これをやりたければ、ただ1つのクエリでSQLですべてを実行できます。 – jeroen

+0

@jeroen "私"あなたの "質問"を見た、私は応答を見ることができませんでした。彼らの反応時間は「NULL」になると思う。 –

+0

@ Fred-ii-おそらく1つのクエリの解決策で頭を掻いて;-) – jeroen

答えて

0

...誰かが私を助けることができると思います。コードを取得すると1データセットになるためです。

$db_host="localhost"; 
$db_user="root"; 
$db_pass=""; 
$db_database="test"; 
$con = new 
mysqli($db_host,$db_user,$db_pass,$db_database); 

$sql=mysqli_query($con,"SELECT * FROM tbmath 
WHERE code = 1"); 
while ($a=mysqli_fetch_assoc($sql)) 
{ 
    $c=$a['a']+$a['b']; 
    mysqli_query($con,"UPDATE `tbmath` SET `c` = '$c' 
    WHERE `id` = $a['id']"); 
} 
+1

'[「ID」]'それはだ構文エラーを混乱させるのです。未定義の定数。 –

+0

申し訳ありませんが、私は[「ID」] $追加し忘れてしまった:) 列idはいえユニークではありません再び私の更新の答え – FGDeveloper

+0

をご覧ください。これは期待どおりに動作しません;) – Cashbee

2

操作の種類ごとに1つの更新を行うことができます。多くのエントリがdbにある場合、全体の処理が高速になります。

UPDATE tbmath 
SET c = a + b 
WHERE code = 1; 

UPDATE tbmath 
SET c = a * b 
WHERE code = 2; 

id列が一意ではないようにも指摘したいと思います。それは意図的ですか?通常、idsはユニークです;) このコードは一意ではなくても動作しますが、一意でないidsはコード/フレームワークに他の問題を引き起こす可能性があります。

+0

おめでとう、私はそれを見ませんでした。あなたの解決策を+1しました。 – FGDeveloper

+0

私は単一の更新操作のIDを使用しましたが、私はすべてのエントリを更新するためにワンクリックをしなければならない場合があります –

関連する問題