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;-或者类似的例子^^