我有一个简单的问题,理解如何使用mysqli从简单查询中解析stdObject返回...我尝试了几种不同的方法将stdObject转换为数组,并且只使用fetch_object(),如下所示:
$cart_q = "SELECT card_name FROM products WHERE product_cat = 'HPC' LIMIT 12";
$result = $mysqli->query($cart_q);
echo "<table>";
$i = 0;
while ($products = $result->fetch_object()) {
if($i == 0)
echo "<tr>";
echo "<td>". $products->card_name ."</td>";
$i++;
if($i == 3) {
echo "</tr>";
$i=0;
}
}
echo "<table>";
我已经完成了对象的print_r并获得了一个关联数组,但是将其分解为在页面中显示还没有工作......有什么想法吗?
答案 0 :(得分:0)
注意:我实际上认为你的问题是迭代结果数组,因此标签应该是php,或/和HTML,但让我们看看:
将回溯记录与演示文稿分开通常很好,例如:
$mysqli = new MySQLi($db_host, $db_user, $db_pass, $db_name);
$cart_q = "SELECT card_name FROM products WHERE product_cat = 'HPC' LIMIT 12";
$result = $mysqli->query($cart_q) or die($mysqli->error);
$card_names = array();
while ( $row = $result->fetch_assoc() ){
$card_names[] = $row['card_name'];
}
上面会创建数组$card_names => array('card_name1', 'card_name2' ... etc)
现在,您可以使用foreach迭代该数组并创建输出HTML。根据我的理解,你想创建HTML表格,每行4个单元格,每个单元格一个卡片名称。
echo '<table><tr>';
$i = 1;
foreach ( $card_names as $name ){
echo "<td>$name</td>";
if ( $i % 4 == 0) echo '</tr><tr>';
$i++;
}
($i - 1) % 4 == 0 ? echo '</tr></table>'; : echo '</table>';