一个主题帖子,发不同的版块,像csdn的博客一样!

xi4ojie 2011-08-03 01:04:59


如图,一个主题帖子,发不同的版块,像csdn的博客一样!

我的意思是:发布一个新闻,然后可以选择不同的版块发布,我想了好久想不出了,希望大家帮助一下!
...全文
76 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyaspnet 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qq404766692 的回复:]

先看mysql手册中find_in_set函数的语法:

FIND_IN_SET(str,strlist)

假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用……
[/Quote]

基本上这种需求都是用字符串将版块ID分隔
xi4ojie 2011-08-03
  • 打赏
  • 举报
回复
先看mysql手册中find_in_set函数的语法:

FIND_IN_SET(str,strlist)

假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

mysql> SELECT FIND_IN_SET('b','a,b,c,d');

-> 2
如果返回的是0,说明就没有了。

明白了,谢谢!
JavaBoyCaoJi 2011-08-03
  • 打赏
  • 举报
回复
xuzuning 2011-08-03
  • 打赏
  • 举报
回复
大致是这样,但 要调用的时候,我就用explode来切割它 是不对的

比如现在要获取 国内新闻 的列表
那么
1 xxxxxx 2
2 xxxxxx 2,3

都应该出来,你的检索条件该怎么写呢?
总不能 like '%2%' 都弄出来再一个个剔除吧?
因为可能是 3,12
也可能有 4,6,21

还有这样的话要取多少才能满足列表高度的要求呢?

检索时应该用 find_in_set 函数
xi4ojie 2011-08-03
  • 打赏
  • 举报
回复
我版块的数据结构是:
id name pid
1 新闻 0
2 国内新闻 1
3 国外新闻 1

新闻表:
id title catid
1 xxxxxx 2
2 xxxxxx 2,3

我存储的时候和二楼的想法差不多,catid设置成为varchar类型,然后选中2 3的话(因为复选框的值要想是一个数组)用implode()来连接他们,catid存储的时候是2,3。我要调用的时候,我就用explode来切割它。
应该是这个样子 呵呵
fanfangchao 2011-08-03
  • 打赏
  • 举报
回复
插入的时候直接把这几个版块的例如是ID都插入到这个新闻的表中啊 例如用"|"来区分开,那去其他的版块 直接就explode "|" 来判断是不是这个版块的 .

xuzuning 2011-08-03
  • 打赏
  • 举报
回复
那要看你是怎样区分板块的

20,358

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧