Php 切换mysql查询以比较结果
我有一个包含几列的表,其中一列是日期列(data1) 使用的mysql查询是Php 切换mysql查询以比较结果,php,mysql,Php,Mysql,我有一个包含几列的表,其中一列是日期列(data1) 使用的mysql查询是 SELECT * from leads WHERE data1 between date_sub(now(),INTERVAL 1 WEEK) and now() 然后,我们从每一行获取数据,运行一些计算,并将其存储为单独的变量 现在,我想通过更改SELECT查询,将此数据与上周的数据(在同一个表中)进行比较 让我扩展一下 用于从表中获取本周数据的查询: $sqld = "SELECT * from leads WH
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查询的情况下,是否有任何方法可以实现这一点
$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),并根据需要进行比较…我认为您可以创建一个用于重复数据的函数,并使用一些参数调用它来更改查询,如下所示
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>
}
somefunction(“先前”);
somefunction();
函数somefunction($query=“current”){
如果($query==“当前”)
$sqld=“从数据1介于日期(现在(),间隔1周)和现在()之间的Lead中选择*”;
其他的
$sqld=“从数据1介于日期(现在(),间隔2周)和(现在(),间隔1周)之间的Lead中选择*”;
$result=mysql\u query($sqld)或die(mysql\u error());
$num\u rows=mysql\u num\u rows($result);
while($row=mysql\u fetch\u数组($result))
{
$referenced=$referenced+$row['referenced'];
$invalidated=$invalidated+$row['invalidated'];
$tobequalified=$tobequalified+$row['tobequalified'];
}
本周总计
总线索
援引的
无效
合格
}
你能给出一个更具体的例子吗?你可以使用一周前的date_diff()值连接回同一个表(假设索引允许)。这取决于你的php查询和计算代码。分离代码,将查询中的数据提取到一个数组中,并将该数组传递给计算。谢谢-我稍微重新格式化了它,并使用函数实现了我想要的结果。