繁体   English   中英

在foreach循环外使用变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM