[英]Use variable outside foreach loop
我尝试为学习目的创建一个简单的cms。 我写了一个获取特定类别帖子的函数。 为了打印帖子,我使用了foreach循环。 但是我只想在屏幕顶部使用cat_title一次。 应该显示与该cat_title / cat_id相关的所有帖子。 我似乎无法使它正常工作。
function get_cat_posts($cat_id, $conn)
{
$result = $conn->query("SELECT blog_item.id, blog_item.title, blog_item.category_id, blog_item.posted_on, blog_item.content, menu_item.cat_title, menu_item.cat_id FROM blog_item INNER JOIN menu_item ON blog_item.category_id = menu_item.cat_id WHERE menu_item.cat_id= $cat_id");
if($result->rowCount() != 0) {
// - category title -
foreach($result as $row) {
echo '<hr>';
echo '<a href="post_cat_template.php/?category=' .$row['cat_id'] . '?post_id=' .$row['id'] . '">' . $row['title'] . '</a> - <em>' . $row['posted_on'] . '</em>';
echo '<hr>';
}
}
else { echo "no posts in this category";}
}
只要您位于if($result->rowCount() != 0) {
,您就会知道$result[0]
存在,并且根据SQL,所有$result
都具有相同的cat_title
,因此您可以做这个:
function get_cat_posts($cat_id, $conn)
{
$data = $conn->query("SELECT blog_item.id, blog_item.title, blog_item.category_id, blog_item.posted_on, blog_item.content, menu_item.cat_title, menu_item.cat_id FROM blog_item INNER JOIN menu_item ON blog_item.category_id = menu_item.cat_id WHERE menu_item.cat_id= $cat_id");
if($data->rowCount() != 0) {
$result = $data->fetchAll(PDO::FETCH_ASSOC);
echo $result[0]['cat_title']; // format as you want
foreach($result as $row) {
echo '<hr>';
echo '<a href="post_cat_template.php/? category=' .$row['cat_id'] . '?post_id=' .$row['id'] . '">' . $row['title'] . '</a> - <em>' . $row['posted_on'] . '</em>';
echo '<hr>';
}
}
else { echo "no posts in this category";}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.