我有一个表包含几列,其中之一是日期列(data1)。切换mysql查询来比较结果
使用MySQL查询是
SELECT * from leads WHERE data1 between date_sub(now(),INTERVAL 1 WEEK) and now()
然后,我们从各行取数据,运行一些计算和存储这个作为一个独立的变量。
我现在想比较这些数据与上周的数据(在同一个表中),即通过改变SELECT查询。
让我扩大...
查询从表中获取该周数据:通过提取数据
$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'];
}
$sqld = "SELECT * from leads WHERE data1 between date_sub(now(),INTERVAL 1 WEEK) and now()";
现在我们运行(以上只是一个我们需要运行演示的片段)。
现在我们会根据这个星期的数据
<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查询?
你能举一个更具体的例子吗? – eggyal
您可以使用一个星期前的date_diff()值回到同一个表(假设索引允许)。 – ethrbunny
这取决于你的php查询和计算代码。分离代码并将查询中的数据提取到数组中并将该数组传递给计算。 –