1

いくつかの列を含むテーブルがあり、そのうちの 1 つは日付列 (data1) です。

使用されるmysqlクエリは

SELECT * from leads WHERE data1 between date_sub(now(),INTERVAL 1 WEEK) and now()

次に、各行からデータを取得し、いくつかの計算を実行して、これを個別の変数として保存します。

SELECT クエリを変更して、このデータを先週のデータ (同じテーブル内) と比較したいと思います。

展開させてください...

テーブルから今週のデータを取得するためのクエリ:

$sqld = "SELECT * from leads WHERE data1 between date_sub(now(),INTERVAL 1 WEEK) and now()";

次に、データの抽出を実行します

$result = mysql_query($sqld) or die(mysql_error());

$num_rows = mysql_num_rows($result);

while($row = mysql_fetch_array($result))
{
      $referred = $referred + $row['referred'];
      $invalidated = $invalidated + $row['invalidated'];
      $tobequalified = $tobequalified + $row['tobequalified'];
}

(上記は、実証するために実行する必要がある計算のほんの一部です)。

この週のデータに基づいて結果を表示します

          <h4>Totals for this week</h4>

            <table class="table stat-table">
                <tbody>
                    <tr>
                        <td class="value"><? echo $num_rows; ?></td>
                        <td class="full">Total leads</td>
                    </tr>
                    <tr>
                        <td class="value"><? echo $referred; ?></td>
                        <td class="full">Referred</td>
                    </tr>
                    <tr>
                        <td class="value"><? echo $invalidated; ?></td>
                        <td class="full">Invalidated</td>
                    </tr>
                    <tr>
                        <td class="value"><? echo $tobequalified; ?></td>
                        <td class="full">To be qualified</td>
                    </tr>

                </tbody>
            </table>

上記の $sqld クエリを変更して、先週に該当するテーブル内の行を選択し、上記と同じ計算を実行して、結果を下に表示し、2 つを比較できるようにします。

            <h4> Totals for last week</h4>


            <table class="table stat-table">
                <tbody>
                    <tr>
                        <td class="value"><? echo $num_rows; ?></td>
                        <td class="full">Total leads</td>
                    </tr>
                    <tr>
                        <td class="value"><? echo $referred; ?></td>
                        <td class="full">Referred</td>
                    </tr>
                    <tr>
                        <td class="value"><? echo $invalidated; ?></td>
                        <td class="full">Invalidated</td>
                    </tr>
                    <tr>
                        <td class="value"><? echo $tobequalified; ?></td>
                        <td class="full">To be qualified</td>
                    </tr>

                </tbody>
            </table>

すべてをコピーして $sqld クエリを変更せずにこれを達成する方法はありますか?

4

2 に答える 2

0
$result1 = mysql_query("SELECT * FROM leads");
$result2 = mysql_query("SELECT * FROM other table");
$arr1 = new Array();
$arr2 = new Array();

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  {
  $arr1['FirstName'] = $row['your column name'];
  }

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
  {
  $arr2['FirstName'] = $row['your column name'];
  }

これで、2 つの配列 ($arr1 と $arr2) ができ、必要に応じて比較できます...

于 2013-01-03T13:27:09.560 に答える
0

データを繰り返すための関数を作成し、いくつかのパラメータで呼び出して、以下のようにクエリを変更できると思います

somefunction("Previous");
somefunction();

function somefunciton($query = "current") {
    if($query == "Current")
        $sqld = "SELECT * from leads WHERE data1 between date_sub(now(),INTERVAL 1 WEEK) and now()";
    else
        $sqld = "SELECT * from leads WHERE data1 between date_sub(now(),INTERVAL 2 WEEK) and (now(),INTERVAL 1 WEEK)";
    $result = mysql_query($sqld) or die(mysql_error());

    $num_rows = mysql_num_rows($result);

    while($row = mysql_fetch_array($result))
    {
          $referred = $referred + $row['referred'];
          $invalidated = $invalidated + $row['invalidated'];
          $tobequalified = $tobequalified + $row['tobequalified'];
    }
    <h4>Totals for this week</h4>

        <table class="table stat-table">
        <tbody>
            <tr>
            <td class="value"><? echo $num_rows; ?></td>
            <td class="full">Total leads</td>
            </tr>
            <tr>
            <td class="value"><? echo $referred; ?></td>
            <td class="full">Referred</td>
            </tr>
            <tr>
            <td class="value"><? echo $invalidated; ?></td>
            <td class="full">Invalidated</td>
            </tr>
            <tr>
            <td class="value"><? echo $tobequalified; ?></td>
            <td class="full">To be qualified</td>
            </tr>

        </tbody>
        </table>
}
于 2013-01-03T13:32:58.233 に答える