Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 多数组值的Mysql查询_Php_Mysql_Arrays_Video - Fatal编程技术网

Php 多数组值的Mysql查询

Php 多数组值的Mysql查询,php,mysql,arrays,video,Php,Mysql,Arrays,Video,我有一个疑问: $relatedtags = $video->tags; $relatedtagsagain = explode(",", $relatedtags); $query_parts = array(); foreach ($relatedtagsagain as $item) { $query_parts[] = "'%".mysql_real_escape_string($item)."%'";} $string = implode(",", $query_parts);

我有一个疑问:

$relatedtags = $video->tags;
$relatedtagsagain = explode(",", $relatedtags);
$query_parts = array();
foreach ($relatedtagsagain as $item) {
$query_parts[] = "'%".mysql_real_escape_string($item)."%'";}
$string = implode(",", $query_parts);

$result = $cachedb->get_results("SELECT ".DB_PREFIX."videos.title,".DB_PREFIX."videos.id as vid,".DB_PREFIX."videos.thumb, ".DB_PREFIX."videos.views,".DB_PREFIX."videos.duration,".DB_PREFIX."users.name, ".DB_PREFIX."users.id as owner FROM ".DB_PREFIX."videos LEFT JOIN ".DB_PREFIX."users ON ".DB_PREFIX."videos.user_id = ".DB_PREFIX."users.id where ".DB_PREFIX."videos.tags LIKE {$query_parts[0]} OR ".DB_PREFIX."videos.tags LIKE {$query_parts[1]} limit 0,".get_option('related-nr')." ");

如何获取更多$query\u部分[]的结果,如$query\u部分[2]和$query\u部分[3],或从所有数组中获取结果?使用LIKE$query\u parts[]是行不通的。

让我们回到编程的基础,这可以通过多种方式解决,比如使用数组映射参见scrowler、循环和更多的注释:

使用foreach循环的示例:

foreach ($relatedtagsagain as $item) {
  $query_parts[] = " videos.tags LIKE " . "'%". mysql_real_escape_string($item) . "%' ";
}
$parsed_query_parts = implode('OR', $query_parts);

$result = $cachedb->get_results("SELECT ".DB_PREFIX."videos.title,".DB_PREFIX."videos.id as vid,".DB_PREFIX."videos.thumb, ".DB_PREFIX."videos.views,".DB_PREFIX."videos.duration,".DB_PREFIX."users.name, ".DB_PREFIX."users.id as owner FROM ".DB_PREFIX."videos LEFT JOIN ".DB_PREFIX."users ON ".DB_PREFIX."videos.user_id = ".DB_PREFIX."users.id WHERE" . $parsed_query_parts . " limit 0,".get_option('related-nr')." ");

把查询变成一个变量并附加到它上面。嗨,克里斯,这是我的编码技能。WHERE。内爆'OR',数组映射函数$value{return DB_PREFIX.videos.tags,如{$value};},$query\u parts;-或者类似的例子^^