Php 如何使用herdoc循环两个引导列
我试图循环浏览产品,并在两个引导列中显示它们。很明显,我现在使用的方法不起作用,因为输出是:Php 如何使用herdoc循环两个引导列,php,twitter-bootstrap,Php,Twitter Bootstrap,我试图循环浏览产品,并在两个引导列中显示它们。很明显,我现在使用的方法不起作用,因为输出是: Apple Apple Banana Banana Grapes Grapes Strawberry Strawberry 然而,它应该看起来像: Apple Banana Grapes Strawberry function bootloop($link) {
Apple Apple
Banana Banana
Grapes Grapes
Strawberry Strawberry
然而,它应该看起来像:
Apple Banana
Grapes Strawberry
function bootloop($link) {
$stmt = $link->prepare("SELECT `prod_name` FROM `products`");
$stmt->execute();
$result = $stmt->get_result();
if($result) {
while($row = $result->fetch_assoc()) {
$prod_name = sanitize($row['prod_name']);
$bootloop = <<<LOOPCOLUMNS
<div class="col-md-6 text-center">{$prod_name}</div>
<div class="col-md-6 text-center">{$prod_name}</div>
LOOPCOLUMNS;
echo $bootloop;
}
}
$stmt->close();
}
<div class="container">
<div class="row">
<?php bootloop($link); ?>
</div>
</div>
苹果香蕉
葡萄草莓
函数bootloop($link){
$stmt=$link->prepare(“从“产品”中选择“产品名称”);
$stmt->execute();
$result=$stmt->get_result();
如果($结果){
而($row=$result->fetch_assoc()){
$prod_name=sanitize($row['prod_name']);
$bootloop=如果要对行的数组值进行分组,可以使用
array\u chunk()
另外,由于您不需要为以后存储html
,而且行非常小,因此我只使用echo
,而不是herdoc
,因为我发现它更可读。显然,如果您不想这样做,您不必这样做
然后,您将得到如下结果:
function bootloop($link)
{
$stmt = $link->prepare("SELECT `prod_name` FROM `products`");
$stmt->execute();
$result = $stmt->get_result();
if ($result) {
$prod_names = [];
while ($row = $result->fetch_assoc()) {
$prod_names[] = sanitize($row['prod_name']);
}
foreach (array_chunk($prod_names, 2) as $chunks) : ?>
<div class="row">
<?php foreach ($chunks as $prod_name) : ?>
<div class="col-md-6 text-center">
<?php echo $prod_name ?>
</div>
<?php endforeach ?>
</div>
<?php endforeach;
}
$stmt->close();
}
函数引导循环($link)
{
$stmt=$link->prepare(“从“产品”中选择“产品名称”);
$stmt->execute();
$result=$stmt->get_result();
如果($结果){
$prod_名称=[];
而($row=$result->fetch_assoc()){
$prod_name[]=消毒($row['prod_name']);
}
foreach(数组块($prod\u名称,2)作为$chunks):?>
最简单的方法是只使用一个{$prod\u name}
在循环中:)哦,对了。也许我今天在阳光下呆得太久了。PI似乎无法选择你的评论作为答案。也许重新发布代码减去col-md-6行。是的,可以。也就是说,引导列应该被包装成行,以便它们的样式正确。你想让我告诉你一种方法吗?是的,请e!那太好了。这看起来很棒了,谢谢!如果你不介意再帮我一点忙的话,我怎么能给它添加另一个变量呢?就像我还想要$prod_id以及现有的$prod_名称一样。@Jonathan Justid
或者你以后会给它添加更多吗?@Jonathan好的,sanitize()是什么
do?sanitize只是我的htmlentities的助手函数function sanitize($dirty){return htmlentities($dirty,entu QUOTES,“UTF-8”)}
@Jonathan另外,看看其中的一些,你几乎可以肯定地跳过前几节课,但在后面的一些课中,你可能会发现一些有趣的概念。
foreach (array_chunk($prod_names, 2) as $chunks) {
echo '<div class="row">';
foreach ($chunks as $prod_name) {
echo "<div class='col-md-6 text-center'>$prod_name</div>";
}
echo '</div>';
}
$stmt = $link->prepare("SELECT `id`, `prod_name` FROM `products`");
$products = [];
while ($row = $result->fetch_assoc()) {
$products[] = [
'id' => $row['id'],
'name' => sanitize($row['prod_name']),
];
}
foreach (array_chunk($products, 2) as $chunks) {
echo '<div class="row">';
foreach ($chunks as $product) {
echo "<div class='col-md-6 text-center'>{$product['id']} {$product['name']}</div>";
}
echo '</div>';
}