Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数据库表查询帮助请求-字符串变量_Php_String - Fatal编程技术网

PHP数据库表查询帮助请求-字符串变量

PHP数据库表查询帮助请求-字符串变量,php,string,Php,String,目前我正在为一个网站创建一个新闻部分 我创建了它,以便新闻类型由一个字符串分隔,例如category=,2,4,6 我通常不经常使用字符串,我最初的想法是这样做: $query_listelements = "SELECT * FROM newsitems WHERE released = 1 AND (category = 2 OR category = 4 OR category = 6) ORDER BY date_rel DESC"; 显然,这不起作用,因为我需要隔离/扩展字符串。所

目前我正在为一个网站创建一个新闻部分

我创建了它,以便新闻类型由一个字符串分隔,例如category=,2,4,6

我通常不经常使用字符串,我最初的想法是这样做:

$query_listelements = "SELECT * FROM newsitems WHERE released = 1 AND (category = 2  OR category = 4 OR category = 6) ORDER BY date_rel DESC";
显然,这不起作用,因为我需要隔离/扩展字符串。所以它必须是这样的:

$query_listelements = "SELECT * FROM newsitems WHERE released = 1 AND (category = strval(",2,")  OR category = strval(",4,") OR category = strval(",6,")) ORDER BY date_rel DESC";
我也不认为以上是解决问题的正确方法


任何想法都会被珍视

你可以像下面这样使用,我觉得更好

$category= array ( 2, 4, 6);
$category = implode(',', $category); //Now it is a string like '2,4,6'
$query_listelements = "SELECT * FROM newsitems WHERE released = 1 AND (category IN ($category)) ORDER BY date_rel DESC";

不要走这条路。用一个新闻分类表来规范你的数据库,否则它会给你带来未来的痛苦嗨,马克,谢谢你的反馈。我真的认为用这种方式设置类别是可以的,如果我能用这种方式设置类别就可以了。如果我能想出一个办法。实际类别不会改变/动态,因此未来校对应该不会是一个问题。这不仅仅是关于未来校对,以便您可以添加新类别。。。这是关于分类搜索的便利性。一个新闻分类表使搜索变得更加容易,而且cn也可以为性能编制索引;虽然类别ID的逗号分隔列需要更复杂的查询,并且该列上的任何索引都不能由SQL EngineThaks Mustafa使用,但这与我所追求的解决方案非常接近,尽管不幸的是,我似乎无法让代码以某种方式运行。出现“意外的T_变量”错误。请在第二行后添加分号“;”。现在编辑我的答案。