【发布时间】:2015-10-12 12:43:06
【问题描述】:
我仍然是 PHP 和 MySQL 的新手,但愿意学习,经过三天的修修补补,现在我需要帮助。
首先,为了帮助您了解我的数据库结构,我有一个名为“o70vm_invoices_items”的 MySQL 数据库表,我正在尝试遍历每个 invoice_ID 的结果。 items 表中的每个项目都有一个 PK (o70vm_invoices_items.id),invoice_ID 列是指向另一个表 (invoices) 的链接。
例如,在项目表中,一些发票可能只有一个项目,而其他发票可能有两个或三个项目。我对如何循环显示与每张发票相关联的所有项目 (o70vm_invoices_items.name) 感到非常困难。
这是我的 MySQL 查询语句:
$queryItems = "SELECT
o70vm_invoices_items.id AS 'Item_ID',
o70vm_invoices_items.invoice_id AS 'Invoice_ID_on_Items',
o70vm_invoices_items.name AS 'Program',
o70vm_invoices_items.value AS 'Fee',
o70vm_invoices_items.amount AS 'Qty',
o70vm_invoices_items.desc AS 'forWeek',
GROUP_CONCAT(o70vm_invoices_items.desc SEPARATOR ' & ') As 'forWeekGroup',
ROUND(SUM((o70vm_invoices_items.value)*(o70vm_invoices_items.amount)),2) AS 'INV-TOTAL'
FROM o70vm_invoices_items
WHERE o70vm_invoices_items.invoice_id = $invoiceID
GROUP BY o70vm_invoices_items.invoice_id";
如您所见,我正在从 INVOICE_ID 搜索结果。这部分效果很好。我得到这些结果很容易显示。问题是我希望在“o70vm_invoices_items.name”列中显示所选发票 ID 的每个值,并且我只能显示一个项目。
这是我尝试循环遍历结果并显示信息:
// storing the result of this MySQL query
$resultItems = mysql_query($queryItems) or die(mysql_error());
echo "<table><tr>";
while($rowItems = mysql_fetch_array($resultItems))
{
echo "<td>";
echo "<input type='text' title='' name='name' id='name' value='". $rowItems['Program']. "' /><br>";
echo "</td>";
}
echo "</tr></table>";
同样,我只能得到一个项目的结果,而不是所有项目的结果。任何帮助,非常感谢。我想我可能需要一种不同的方式来编写一个数组。此外,如您所见,我将它显示在一个输入标签中,希望以后能够编辑内容。
请注意:一旦我弄清楚了这一点,我还需要对费用和数量列执行相同的操作。
【问题讨论】:
-
请不要使用
mysql_*函数。至于查询,不用到处放o70vm_invoices_items.。