然后Php爆炸从MySql表中获取名称行

Bro*_*ke. 1 php foreach loops explode

我知道以前这里已经讨论过了.但是,我的情况有点不同,我很亲密.

我想从新闻数据表中分解一个类别ID的数组,然后从类别表中获取类别名称.

现在我能够将id输出并使用以下内容在while循环中为新闻数据爆炸它们:

    $post_cats_data = $news_data['cat_id']; // 1,6,7,11
    $post_cats_id = explode(",", $post_cats_data);
Run Code Online (Sandbox Code Playgroud)

现在我陷入困境的是得到新闻类别并回应出这个名字.

 $cat_count = count($post_cats_id);
 $i = 0;
     foreach($post_cats_id as $cat_id){
       $cat_qry = mysql_query("SELECT * FROM news_categories WHERE `cat_id` = '$cat_id'") or die(mysql_error());
    $cat_title_row = mysql_fetch_row($cat_qry) or die(mysql_error());
      $i++;
      $write_cat .= $cat_title_row['cat_name'] ;
        if($i<$cat_count){
           $write_cat .= ', ';
        }

 } 
Run Code Online (Sandbox Code Playgroud)

我们的想法是,这将从爆炸的类别表中获取类别名称,并将逗号添加回每个人的末尾,但最后一个.我无法获取类别名称,当我返回ID时,它会循环显示所有新闻的ID.

我知道这是一个简单的问题,我只是新手使用循​​环.

Mar*_*arz 5

mysql_fetch_row返回一个索引为0的数组,因此$cat_title_row['cat_name']不会给你想要的结果.使用mysql_fetch_assoc相反,它应该工作正常.

PHP手册:

mysql_fetch_row()返回与获取的行对应的数字字符串数组,如果没有更多行,则返回FALSE.

mysql_fetch_row()从与指定结果标识符关联的结果中提取一行数据.该行作为数组返回.每个结果列都存储在一个数组偏移量中,从偏移量0开始.