我只模拟一个 输出 3条商品信息的效果了
否则 文字又要超长了
CREATE TABLE sp_classify (cid INT,
cname VARCHAR(10)
);
INSERT INTO sp_classify VALUES(1, '笔记本');
INSERT INTO sp_classify VALUES(2, '台式机');
INSERT INTO sp_classify VALUES(3, '超级本');
INSERT INTO sp_classify VALUES(4, '平板');
CREATE TABLE sp_goods (
cid INT,
gtitle VARCHAR(50)
);
INSERT INTO sp_goods VALUES(1, '笔记本1');
INSERT INTO sp_goods VALUES(1, '笔记本2');
INSERT INTO sp_goods VALUES(1, '笔记本3');
INSERT INTO sp_goods VALUES(1, '笔记本4');
INSERT INTO sp_goods VALUES(1, '笔记本5');
INSERT INTO sp_goods VALUES(2, '台式机1');
INSERT INTO sp_goods VALUES(2, '台式机2');
INSERT INTO sp_goods VALUES(2, '台式机3');
INSERT INTO sp_goods VALUES(2, '台式机4');
INSERT INTO sp_goods VALUES(2, '台式机5');
INSERT INTO sp_goods VALUES(3, '超级本1');
INSERT INTO sp_goods VALUES(3, '超级本2');
INSERT INTO sp_goods VALUES(3, '超级本3');
INSERT INTO sp_goods VALUES(3, '超级本4');
INSERT INTO sp_goods VALUES(3, '超级本5');
INSERT INTO sp_goods VALUES(4, '平板1');
INSERT INTO sp_goods VALUES(4, '平板2');
INSERT INTO sp_goods VALUES(4, '平板3');
INSERT INTO sp_goods VALUES(4, '平板4');
INSERT INTO sp_goods VALUES(4, '平板5');
SELECT
resultName
FROM
(
SELECT 0 as seqNo, cid, cname as resultName FROM sp_classify
UNION ALL
SELECT CASE WHEN @cn != cid THEN @rownum:= 1
ELSE @rownum:= @rownum + 1 END as seqNo,
@cn := cid AS cid,
gtitle as resultName FROM sp_goods, (SELECT @rownum:=1) r, (SELECT @cn:=0) p
) subQuery
WHERE
SeqNo <=3
ORDER BY
cid, seqNo;
+------------+
| resultName |
+------------+
| 笔记本 |
| 笔记本1 |
| 笔记本2 |
| 笔记本3 |
| 台式机 |
| 台式机1 |
| 台式机2 |
| 台式机3 |
| 超级本 |
| 超级本1 |
| 超级本2 |
| 超级本3 |
| 平板 |
| 平板1 |
| 平板2 |
| 平板3 |
+------------+
16 rows in set (000 sec)
你需要 10行商品的, 就是简单把 sql 语句中的 WHERE SeqNo <=3
修改为 WHERE SeqNo <= 10 即可。
area 表
id 编号 name 名称 title 英文简称 status状态 sort排序
1 北京 beijing 1 10
2 天津 tianjin 1 20
cate 表
id 编号 name 名称 title 英文简称 status 状态 sort排序
1 手机 phone 1 10
2 电脑 pc 1 20
3 平板电脑 ipad 1 30
supply表
id 编号 name 名称 title 英文简称 price 价格 color 颜色 other简介 area_id 地区id cate_id 分类id
1 iphone6s iphone6s 500000 白色 国行iphone6s 1 1
2 iphone6s iphone6s 500000 黑色 国行黑色iphone6s 2 1
参考以下代码:
<php if ( have_posts() ) : ><php while ( have_posts() ) : the_post();
$categories = get_the_category();//获取当前post的分类信息
if ( empty( $categories ) ) {
echo "Uncategorized";
} else {
foreach ($categories as $category ) {
//循环输出分类的name与slug
echo $category->name ":" $cateogry->slug;
}
}
endwhile; >
<php else : >
<php endif; >
第一步,将下面的代码添加到主题functions模板文件中:
function setTitle(){
$term = get_term_by('slug',get_query_var('term'),get_query_var('taxonomy'));
echo $title = $term->name;
}
第二步,用:
<php setTitle(); >
替换主题头部模板header类似这句:
<php wp_title('',true); >
(美设之家提供)
方法有很多,介绍一个方法给你
首先将如下代码放到主题文件functionsphp中:
function get_current_category_id() {
$current_category = single_cat_title('', false);
//获得当前分类目录名称
return get_cat_ID($current_category);
//获得当前分类目录ID
}
function get_current_tag_id() {
$current_tag = single_tag_title('', false);
//获得当前TAG标签名称
$tags = get_tags();
//获得所有TAG标签信息的数组
foreach($tags as $tag) {
if($tag->name == $current_tag) return $tag->term_id;
//获得当前TAG标签ID,其中term_id就是tag ID
}
}
下面这一步是为了获得指定分类目录ID或指定TAG标签ID,之后就可以在需要的地方使用如下代码来调用functions文件里的函数就可以实现想要的功能了:
<php
if (is_category())
{
get_most_viewed_category(get_current_category_id());
}
elseif (is_tag())
{
get_most_viewed_tag(get_current_tag_id());
}
else {
get_most_viewed();
}
>
补充说明:按照以上的方法来进行推理,只要将上述代码中的most替换为least即可实现冷门文章的调用。
热门,冷门文章都可以中这个方法来实现,看你怎么 *** 作了。
不懂的可以百度‘Pladys’,第一个即为我的博客,欢迎给位新手前来提问
你可以这样
$str = 'select id from tp_order_cat where parentid in (1,5,6)';//获取所有的1,5,6的所有下级分类$need_list = D('tp_order_cat')->where('parentid in (1,5,6)')->select();//获取到的
$need_id_str = ''; //获取需要的子类id
foreach($need_list as $val){
$need_id[] = $val['id'];
}
$need_id_str = join(',', $need_id);
$where = "catid in ($need_id_str)";
$products = $this->order_model->where($where)->order($order' '$method)->limit('5')->select();
这样就可以了!
以上就是关于mysql查询2个表 获取分类和分类列表全部的内容,包括:mysql查询2个表 获取分类和分类列表、数据库多表查询,要实现的功能是点击分类名字并且名字和地区关联,可以显示当前分类的内容、wordpress 如何获取循环对应的文章分类name和slug等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)