请原谅我,因为我是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>';
}
我遇到的问题是我正在逐行遍历记录集,并将数据添加到每一行。我试图在一个循环内创建一个循环,这不会给我正确的结果。
是否可以将结果集分成两个多维数组,然后分别遍历每个多维数组,然后将它们添加到表中?我可以在循环中用计数器调用特定行吗?
任何建议或指导都会有很大帮助。
答案 0 :(得分: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>';
答案 1 :(得分:0)
基于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>';
}