我使用下面的代码从数组中打印但是打印的列数太多了,因为我使用的是foreach循环...
我如何只打印1个col1和1个col2,但保持正确的字符串打印?
<div class="feature-text">
<?php
//Now print the associated cms_page_parts
$qpp = $conn->query("SELECT * FROM cms_page_part WHERE page_id=$id");
$rpp = $qpp->fetchAll(PDO::FETCH_ASSOC);
foreach ($rpp as $row) {
?>
<div id="col1">
<p><?php echo $row['name']=='body' ? $row['content_html'] : NULL; ?></p>
</div>
<div id="col2">
<p class="testimonial"><?php echo $row['name']=='sidebar' ? $row['content_html'] : NULL; ?></p>
</div>
<?php
}
?>
</div>
答案 0 :(得分:1)
在循环的每次迭代中,当我怀疑你只想要一个div时,你会打印两个div。怎么样呢:
foreach ($rpp as $row) {
if ($row['name'] == 'body') {
echo '<div id="col1">'
. '<p>' . $row['content_html'] . '</p>'
. '</div>';
} else {
echo '<div id="col2">'
. '<p class="testimonial">' . $row['content_html'] . '</p>'
. '</div>';
}
}
答案 1 :(得分:0)
break
结束当前for,foreach,while,do-while或switch结构的执行。
http://php.net/manual/en/control-structures.break.php
答案 2 :(得分:0)
您可以使用LIMIT 0,2子句限制查询仅返回2行。
或者你可以在循环中使用一个简单的计数器:
$counter = 0;
foreach ($rpp as $row) {
if ($counter < 2) {
?>
<div id="col1">
<p><?php echo $row['name']=='body' ? $row['content_html'] : NULL; ?></p>
</div>
<div id="col2">
<p class="testimonial"><?php echo $row['name']=='sidebar' ? $row['content_html'] : NULL; ?></p>
</div>
<?php
$counter++;
}
else
break;
}
答案 3 :(得分:0)
foreach ($rpp as $row) {
if ($row['name'] == 'body') {
echo '<div id="col1">';
echo '<p>' . $row['content_html'] . '</p>'
echo '</div>';
} else if ($row['name'] == 'sidebar') {
echo '<div id="col2">';
echo '<p class="testimonial">' . $row['content_html'] . '</p>';
echo '</div>';
}
}
? 如果你输入一些输入数据样本和想要的结果会更容易;)
答案 4 :(得分:0)
如果你将你的查询限制为2并且只拔出正文和侧边栏,你就会笑:
SELECT * FROM cms_page_part WHERE page_id=$id AND (name ='body' OR name='sidebar' ) LIMIT 2
答案 5 :(得分:0)
如果我理解正确的问题,这样的事情应该有效:
<div class="feature-text">
<?php
//Now print the associated cms_page_parts
$qpp = $conn->query("SELECT * FROM cms_page_part WHERE page_id=$id");
$rpp = $qpp->fetchAll(PDO::FETCH_ASSOC);
$col1 = "";
$col2 = "";
foreach ($rpp as $row) {
$col1 .= '<p>'.($row['name']=='body' ? $row['content_html'] : NULL).'</p>';
$col2 .= '<p class="testimonial">'.($row['name']=='sidebar' ? $row['content_html'] : NULL).'</p>';
}
?>
<div id="col1">
<?php echo $col1 ?>
</div>
<div id="col2">
<?php echo $col2 ?>
</div>
</div>