如何在wordpress中对数组中的每个项进行查询?

时间:2014-02-04 02:16:50

标签: php wordpress

我有点卡住了。 我在wordpress中做了一个查询来获取一个分类标识列表并将它们放入一个数组中:

输出一组id:

 array
   (123,
   633,
   992);

global $wpdb;        
        $results = $wpdb->get_results("SELECT meta_value FROM  `usermeta` WHERE  `meta_key` LIKE  'alertids'");      

        if(!empty($results)) {


                             echo $wpdb->get_results("SELECT name FROM  `terms` WHERE  `term_id` =$results");


                }else 
                        {
                             echo "<p>We couldn't find anything !</p>";      


                        }   

如何查询条款表中数组$ results中的每个项目。 我尝试了一个foreach循环但最终让自己感到困惑。

谢谢!

2 个答案:

答案 0 :(得分:0)

这样的事情应该让你开始

<?php
$myarray = array(123,633,992);
global $wpdb;
$return = array();
foreach ($myarray as $item){        
    $results = $wpdb->get_results("SELECT meta_value FROM  'usermeta' WHERE  'meta_key' LIKE  '".$item."'");      
    if(!empty($results)) {
         $return[] = $wpdb->get_results("SELECT name FROM  `terms` WHERE  `term_id` = '".$results."'");
    }else{
         return false;      
    }
} 
if($return){
    return $return;
} else {
    return false;   
}
?>

答案 1 :(得分:0)

我发现一个更好的解决方案是在数据库中进行连接并从连接中获取值。我不知道这是否是最好的方法,但它对我来说效果很好。

global $wpdb;        
        $results = $wpdb->get_results("SELECT usermeta.umeta_id, usermeta.user_id, usermeta.meta_key, usermeta.meta_value, terms.term_id, terms.name
            FROM usermeta
            JOIN terms ON terms.term_id = usermeta.meta_value
            WHERE usermeta.meta_key =  'alert_ids'
            AND usermeta.user_id =$user_ID");

                            foreach($results as $row)

                            {
                               echo name;

                            }