使用PHP检查哪个表在MySQL查询中有结果?

时间:2015-01-27 13:06:01

标签: php mysql

我正在使用以下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>';    
} 

}?>

2 个答案:

答案 0 :(得分:0)

不太优雅,但您可以在查询中添加一个常量字段,该字段引用表名:

select *,"tab1" as tablename from tab1

将显示名为tablename的列,每行的值为"tab1"。仅当表中至少有一条记录时,它才有效。

更新:当您将不同的表连接到单个结果集时,它会更有用。

答案 1 :(得分:0)

如果两个表中的数据不需要合并在一起,请使用单独的查询。有一个函数可以在过去的x天内获取supplier_bank_details,另一个函数可以在过去的x天内获得supplier_invoices,然后您可以处理有关您希望在PHP中显示的内容的任何逻辑。