gpt4 book ai didi

php - mysql/php 从查询中获取结果并返回表名称,结果在哪里找到?

转载 作者:行者123 更新时间:2023-11-29 23:07:26 26 4
gpt4 key购买 nike

我正在尝试运行 MySQL 查询来查看最近是否对我的两个表进行了任何更改。这是通过检查数据库来查看是否有任何日期少于 30 天的记录来实现的。

我在查询中搜索 2 个表“supplier_invoices”和“supplier_bank_details”,如果其中一个表包含 30 天内的记录,那么它应该显示这些结果。

但是我正在努力做下一步,

我希望能够知道它在哪个表中找到了结果,以便它可以回显正确的行,“您更改了银行详细信息”或“您提交了发票”。

例如,如果用户更改银行详细信息,那么它应该回显:

'Bank details changed     {sortcode}      {account number}    about 2 days ago'

和/或如果供应商提交发票,它应该显示/还显示:

'invoice submited      {reference}      {status}    about 2 days ago'

有谁知道我怎样才能让它发挥作用?提前致谢。

我的代码:

<?php require_once 'config.php'; ?>

<?php
$tbl_name3 = 'supplier_bank_details';
$tbl_name2 = 'supplier_invoices';
$query3 = "select * from $tbl_name2 as $tbl_name2_result, $tbl_name3 as $tbl_name3_result WHERE date > NOW() - INTERVAL 30 DAY ORDER BY date DESC";
$result3 = mysql_query($query3) or die( mysql_error() );
$row3 = mysql_fetch_assoc($result3);


$datetime1 = new DateTime(); // Today's Date/Time
$datetime2 = new DateTime($row3['date']);
$interval = $datetime1->diff($datetime2);


$account_number = '****'.substr($row3['account_number'], -4);

if(mysql_num_rows($result3) > 0) {

if(mysql_num_rows($tbl_name2_result) > 0) {

echo '<div class="contracts_area"><div class="table_header"></div>';
echo '<div class="request"><p>Bank Details Changed</p><p>'.$row3['sort_code'].'</p><p>'.$account_number.'</p><p>about '.$interval->format('%d days ago').'</p></div>';
echo '</div>';

}else{

if(mysql_num_rows($tbl_name3_result) > 0) {

echo '<div class="contracts_area"><div class="table_header"></div>';
echo '<div class="request"><p>Invoice Raised</p></div>';
echo '</div>';
}
}

echo '<div class="no_activity">No Recent Activity</div>';

} ?>

最佳答案

您可以使用内置函数,因为结果中已经有了字段名称,因此只需获取该字段所属的表的名称

http://php.net/manual/en/function.mysql-field-table.php

来自同一链接的示例

<?php

$query = "SELECT account.*, country.* FROM account, country WHERE country.name = 'Portugal' AND account.country_id = country.id";

// get the result from the DB
$result = mysql_query($query);

// Lists the table name and then the field name
for ($i = 0; $i < mysql_num_fields($result); ++$i) {
$table = mysql_field_table($result, $i);
$field = mysql_field_name($result, $i);

echo "$table: $field\n";
}

?>

请使用 mysqli_ 函数,因为 mysql_ 已弃用, future 版本将不再支持

关于php - mysql/php 从查询中获取结果并返回表名称,结果在哪里找到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28234352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com