0

OK、私はこのようなテーブルを持っています

Col1      Col2

10        30
20        40
50        60

私はそのようにデータを照会しています

Query = ("SELECT * FROM TableName");

while ( $row= Mysql_fetch_array($query)) {

  // code will go here 
 Code needs to get the prev row and the current row for every row in the table like:

 This row['col1'] - prev row['col1'] = $wahatever

  echo $whatever



}

php で前の行を参照する方法がわからないので、col1 - 前の col1 と col2 - 前の col2 と言う必要がある while ステートメントを調べます。

これを行う方法を教えてください。実際には、私ができる複雑なマッピング距離を計算するためのものですが、ループで前の行のデータを呼び出す方法がわかりません。

どんな助けでも大歓迎です

ご協力ありがとうございますが、質問を適切に答えたとは思いません。

私が探しているのは、各行を取得し、前の行の col1 から col1 を引いて、最後までループを実行する方法です。

4

5 に答える 5

2
 $prevRow = null;
 while ( $row= Mysql_fetch_array($query)) {
      if($prevRow != null){
           //comparison here
      }
      $prevRow = $row;
 }
于 2013-10-17T14:23:47.877 に答える
2

SQLソリューションでこれを完全に試すことができます

SELECT col1, col2, 
       col1 - @prev1, 
       col2 - @prev2,
       @prev1 := col1, @prev2 := col2
FROM TableName, (select @prev1 := 0, @prev2 := 0) r

SQLFiddle デモ

于 2013-10-17T14:22:08.457 に答える