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 查询以选择表中属于上周的行,在上面运行相同的计算并在下面显示结果,以便我们可以比较两者。

            <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'];
  }

现在您有了两个数组($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 回答