我正在使用以下MySQL查询来检查几个表格,以查看日期在30天内的任何结果。
我想要做的是能够检查哪个表有结果,而不仅仅是MySQL查询是否找到了结果。
我的一张表是supplier_bank_details,所以如果这张表中的记录的日期不到30天,那么我正在回显银行详细信息,否则如果它是我的另一张表supplier_invoices
那么我想回复发票信息。
这是我到目前为止所拥有的,但我对MySQL很陌生并且有点挣扎。请有人告诉我我需要做些什么才能让它发挥作用。
<?php require_once 'config.php'; ?>
<?php
$tbl_name = 'supplier_bank_details';
$tbl_name2 = 'supplier_invoices;
$query = "select * from $tbl_name, $tbl_name2 WHERE date > NOW() - INTERVAL 30 DAY ORDER BY date DESC";
$result = mysql_query($query) or die( mysql_error() );
$row = mysql_fetch_assoc($result);
if(mysql_num_rows($result) > 0) {
$datetime1 = new DateTime(); // Today's Date/Time
$datetime2 = new DateTime($row['date']);
$interval = $datetime1->diff($datetime2);
if(mysql_num_rows($tbl_name) > 0) {
$account_number = '****'.substr($row['account_number'], -4);
echo '<div class="contracts_area"><div class="table_header"></div>';
echo '<div class="request"><p>Bank Details Changed</p><p>'.$row['sort_code'].'</p><p>'.$account_number.'</p><p>about '.$interval->format('%d days ago').'</p></div>';
echo '</div>';
}else{
some invoice info here
}else{
echo '<div class="no_activity">No Recent Activity</div>';
}
}?>
答案 0 :(得分:0)
不太优雅,但您可以在查询中添加一个常量字段,该字段引用表名:
select *,"tab1" as tablename from tab1
将显示名为tablename
的列,每行的值为"tab1"
。仅当表中至少有一条记录时,它才有效。
更新:当您将不同的表连接到单个结果集时,它会更有用。
答案 1 :(得分:0)
如果两个表中的数据不需要合并在一起,请使用单独的查询。有一个函数可以在过去的x天内获取supplier_bank_details,另一个函数可以在过去的x天内获得supplier_invoices,然后您可以处理有关您希望在PHP中显示的内容的任何逻辑。