已经解决了。我刚在SQL子句中使用了
WHERE MONTH(due_date) = $month
。从来不知道它会是那样的。谢谢你的所有答案!
我们有一个名为bills
的表格。即使已经为记录目的付款,我们也不会删除帐单。
所以我们的目标是只显示The Bills for this Month
。我有$cur_month = current month value
。我知道如何使用MONTH()
从字段中提取月份值,使用循环来运行表格,但是当我尝试echo MONTH(date)
时,显示的系列中的值只是月度值第一排。它似乎无法获得其他行的MONTH VALUE。
下面的固定代码
$query = "SELECT * FROM bill WHERE MONTH(due_date)=$month";
$bresult = mysql_query($query);
while($brow = mysql_fetch_array($bresult, MYSQL_ASSOC))
{
$bdata = mysql_fetch_assoc(mysql_query("SELECT MONTH(due_date) AS M FROM `bill`"));
if($bdata['M'] == $month)
{
echo "<tr>";
echo "<td>".$brow['room_id']."</td>";
echo "<td>".$brow['tenant_id']."</td>";
echo "<td>".$brow['due_date']."</td>";
echo "</tr>";
}
}
$month
有当月的持有人
$bdata['M']
提取月份的持有人。我们只是显示它来检查。因此,如果
extracted_month
为current_month
,那么display bill
我希望你能帮助我。
PS:还是个业余爱好者。这还不是一个在线网站。我们只需要帮助就可以让它发挥作用。答案 0 :(得分:0)
1)在第一个SQL中使用WHERE语句只从表中获取这些行。
像这样:
$query = "SELECT *, MONTH(due_date) as M FROM bill WHERE MONTH(due_date)=" . $month;
$bresult = mysql_query($query);
while($brow = mysql_fetch_array($bresult, MYSQL_ASSOC)) {
echo "<tr>";
echo "<td>".$brow['M']."</td>";
echo "<td>".$brow['tenant_id']."</td>";
echo "<td>".$brow['due_date']."</td>";
echo "</tr>";
}
2)我发现总是检查结果对象是否已创建是一种好习惯,如果是,则检查它是否返回匹配(使用mysql_num_rows($result)
)。这样,如果出现问题(很可能是在SQL语句中),您可以显示错误,或者向用户显示没有匹配项(在这种情况下是账单)。
3)尝试使用MYSQLI连接到您的数据库而不是MYSQL,因为后者已被弃用。 (有关示例,请参阅:http://php.net/manual/en/mysqli-result.fetch-assoc.php。)
答案 1 :(得分:0)
尝试使用SQL解决此问题。
SELECT b.amount_paid 从账单b 月份(b.due_date)= 3
使用此查询的结果,您将获得本月的所有金额。总结你的结果,你就完成了。