2017-05-03 11 views
0

初めてphpで作業していますが、何か問題が残っています。 問題:mysqliリクエストの後に、5つの列と複数の行を含むテーブルが含まれている結果が表示されます。私は今受信したデータで計算を実行し、私の計算の結果を配列の新しい列に追加したいと思います。 つまり、配列に1つの列を追加し、この列に各行の結果を埋めたいと思います。PHP - 配列にフィールド/カラムを追加する

私のコードは次のように、これまで見て、もちろん私だけが私のSQLクエリからの受信アレイを印刷します。たくさんの任意のサポートのための

<?php 
error_reporting(0); 
require 'init1.php'; 

if($result = $db->query("Select * from (select * from(SELECT * FROM `scores` 
ORDER BY `battle_id` ASC,user_id asc,score desc) as t1 GROUP BY 
t1.battle_id, t1.user_id) as t2 order by `battle_id` ASC,score desc")){ 

    if($count = $result->num_rows){ 

     echo '<p>' , $count, '<p>'; 

     while ($row = $result->fetch_object()){ 
      echo $row->battle_id, ' ' , $row->user_id, ' ' , $row->score, '<br>'; 
     } 
     //instead of just printing the existing array, I would like to perform a 
     //calculation and add a result in a new column at the end of every single 
     //row 
    } 
} 

?> 

おかげで、 最高、 ティム

+0

何の計算あなたが話しているの? –

+0

これはやや複雑ですが、基本的な数学について話しています。たとえば、新しい列の新しいフィールドには結果(スコア* 2〜5)が表示されます。 – gunjag

+2

'echo $ row-> score * 2 - 5;'単純ですね。 –

答えて

0

をあなたの場合配列を使用すると、配列内の新しい項目を単に定義して計算結果を保存することができます。

while ($row = $result->fetch_row()) { 
     // Calculation and other stuff here 
     $row['calc_result'] = $calculation_result; 
    } 

その後しばらくの範囲外でそれにアクセスするためには、あなたが例えば、別のアレイ内の各行を格納する必要があります:

$stored_data = array(); 
while ($row = $result->fetch_row()) { 
    // Calculation and other stuff here 
    $row['calc_result'] = $calculation_result; 
    array_push($stored_data, $row); 
} 
+0

チップをありがとう、私は配列を使用することを意味し、$ result-> fetch_objectを$ result-> fetch_rowに変更するのを忘れてしまった。修正しました。 :) –

+0

Thxもう一度、私は今、次のとおりです: – gunjag

関連する問題