gpt4 book ai didi

PHP/MySQL : Calculate two unrelated tables and present in html

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

PHP 新手,抱歉:-)

我在 MySQL 中有两个表,但它们没有可供我连接的共同列。

我想使用 PHP 创建一个 html 表,该表从两个 MySQL 表中提取数据,并使用第二个表中的字段与第一个表中的值相乘。我已连接数据库正常,并且可以在 html 表中显示第一个表,但无法导入第二个表值以用于货币计算。

简化 ->

Table 1
--------
part_name: Text
Part_value: decimal

Table 2 (only 5 rows / currencies will be used)
--------
currency_name: Text
exch_rate: decimal

html 表格应显示如下:

part_name / part_value / part_value * exch_rate (from table 2, row 1) / part_value * exch_rate (from table 2, row 2) / part_value * exch_rate (from table 2, row 3) etc...

我目前的 html 显示如下(请注意 Price xxx 列中缺少的值:

Part Name     Part Value     Price USD   Price CNY   (Header Row)
--------------------------------------------------
part_name / part_value /

我使用 SELECT 语句引入表 1 的值并使用 IF 迭代行。我应该如何获取 exch_rate 值来计算每个“价格 xxx”列的值。

抱歉,如果这看起来有点含糊。我正在尝试解决这个问题,因此如果您能给我指出正确的方向,我将尝试自己编写代码。最好的学习方法:-)

最佳答案

您可以执行交叉连接:

select
p.*,
c.*,
p.part_value * c.exch_rate as localValue
from
Parts p
cross join Currency c

但是您仍然需要拆分该信息才能将其显示在表格中。

或者您可以简单地查询相关部分,在单独的查询中获取汇率,并在 PHP 中执行乘法,大致如下:

<?php
$parts = <<query all parts>>
$currencies = <<query all currencies>>

// Column headers
?><tr><th>name</th><?

foreach($currencies as $currency) {
?><th><?=$currency->currency_name?></th><?
}
?></tr><?

// Part data
foreach ($parts as $part) {
// Start row and show part name
?><tr><td><?=$part->part_name?></td><?

// Each of the prices
foreach($currencies as $currency) {
?><td><?=$part->part_value * $currency->exchange_rate?>;
}
?></tr><?
}

正如您所看到的,代码非常简单,只需要一个嵌套的 foreach 循环,对各个部分进行迭代,然后对每个部分的每种货币进行迭代。与迭代交叉连接的结果并确定何时开始新行相比,这可能更容易,也更“脏”。

您将需要向数据库发出额外的请求,但另一方面,您将返回更少的数据。毕竟,P 部分与 C 货币的交叉联接将产生 i P*C 行,而两个查询将产生 P + C 行。

关于PHP/MySQL : Calculate two unrelated tables and present in html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27236795/

25 4 0