【发布时间】:2010-12-20 02:33:51
【问题描述】:
我知道这已经在这里讨论过。但是,我的情况有点不同,我很接近。
我想从新闻数据表中分解一组类别 ID,然后从类别表中获取类别名称。
现在我可以取出 id 并在新闻数据的 while 循环中很好地分解它们:
$post_cats_data = $news_data['cat_id']; // 1,6,7,11
$post_cats_id = explode(",", $post_cats_data);
现在我陷入困境的是获取新闻类别并呼应名称。
$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 .= ', ';
}
}
这个想法是,这将从已展开的类别表中获取类别名称,并将在除最后一个之外的每个人的末尾添加一个逗号。我无法获取类别名称,当我返回 ID 时,它会循环遍历所有新闻的 ID。
我知道这是一个简单的问题,我只是刚开始使用循环。
【问题讨论】:
-
另外,您可以使用
IN将 SQL 压缩成一条语句,如下所示:$s= "SELECT * FROM news_categories WHERE cat_id IN ($post_cats_data)"