使用单个 PHP 结果集填充 2 列 HTML 表
Posted
技术标签:
【中文标题】使用单个 PHP 结果集填充 2 列 HTML 表【英文标题】:Populate 2 column HTML table with a single PHP result set 【发布时间】:2019-10-21 07:02:35 【问题描述】:请原谅我,因为我是 php 初学者。
我正在尝试用库存信息填充 2 个两列表。使用我当前的代码,我有下图:
我想在这张表中让两家商店彼此相邻。即在表中的表行存储编号 2 和存储编号 7,然后将 10 和 11 存储在同一行,依此类推。下面是我目前用来实现这一点的代码:
global $wpdb;
$result = $wpdb->get_results(
$wpdb->prepare( "
SELECT STORE_NAME,REPLACE(STORE_NAME, ' ', '-') as STOREURL, INVENTORY, STORE_NUMBER FROM StoreInventory
WHERE SKU = %s",
$product_sku
)
);
if ($result)
echo '<table class=\'inventory\'>';
foreach($result as $row)
echo '<tr><td><div><a href=\'https://mystore.com/stores/'. $row->STOREURL . '\' target=\'_parent\'>Store Number: ' . $row->STORE_NUMBER . '</a><br/>' .$row->INVENTORY. ' on hand. </div></td></tr>';
echo '</table>';
else
echo '<table class=\'nostock\'><td>This item is out of stock, check back later for updated information!</td></table>';
我遇到的问题是我正在逐行遍历记录集,并将数据添加到每一行。我试图在循环内有一个循环,这不会给我正确的结果。
是否可以将结果集拆分为两个多维数组并分别循环遍历每个数组,然后将它们添加到表中?我可以在循环中调用带有计数器的特定行吗?
任何建议或指导都会有很大帮助。
【问题讨论】:
【参考方案1】:最终答案基于 ARubiksCube 的回答:
if ($result)
$column_number = 0;
echo '<table class=\'inventory\'><tr>';
foreach($result as $row)
echo '<td \' width=\'50%\' ><div><a href=\'https://shopliquornl.com/stores/'. $row->STOREURL . '\' target=\'_parent\'>' . $row->STORE_NAME . '</a><br/>' .$row->INVENTORY. ' on hand</div></td>';
$column_number += 1;
if ($column_number == 2)
echo '</tr><tr>';
$column_number = 0;
echo '</table>';
else
echo '<table class=\'nostock\'><td>This item is out of stock, check back later for updated information!</td></table>';
【讨论】:
【参考方案2】:一个相对简单的方法是创建一个虚拟变量来存储列。例如:
$column_number = 0;
echo '<table class=\'inventory\'><tr>';
foreach($result as $row)
echo '<td><div><a href=\'https://mystore.com/stores/'. $row->STOREURL . '\' target=\'_parent\'>Store Number: ' . $row->STORE_NUMBER . '</a><br/>' .$row->INVENTORY. ' on hand. </div></td>';
$column_number += 1;
if ($column_number == 2)
echo '</tr><tr>';
$column_number = 0;
echo '</tr></table>';
【讨论】:
我本来打算建议使用模数,但这样做的作用相同,只是将数字重置为 0。 太棒了,谢谢。必须设置我的 td width = 50% 以使两列一直保持相同的宽度,但这很完美。谢谢!以上是关于使用单个 PHP 结果集填充 2 列 HTML 表的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP 将多个 SQL 列组合成 HTML 表的单个列
在 PHP 中,有没有办法循环查询并根据值将其组织到特定列中?