获取mysql查询中所有匹配的数组?

时间:2012-01-10 06:33:39

标签: php mysql sql wordpress

这是我目前的代码:

$wonAwards = $altdb->get_var("SELECT achievement_id 
                                FROM user_1
                               WHERE isTold='false'");

目前,$wonAwards设置为等于sql查询的第一个结果。是否可以将$wonAwards设置为等于查询所有结果的数组?

//////////////////全功能

function the_header_function(){ //called when wordpress header is loaded
    if (is_user_logged_in()){ //checks if user is logged in
        global $altdb;  //wp global database object
        $user_info = wp_get_current_user();
        $wonAwards = $altdb->query("SELECT achievement_id FROM user_".$user_info->ID." WHERE isTold='false'"); //query
        if(is_array($wonAwards)) $hello='true';
        if(!is_array($wonAwards)) $hello='false';
        if($wonAwards != ''){
            echo "<script>jQuery(document).ready( function(){alert('".$hello."');});</script>";
        }
    }
}

至于检查我的查询结果是什么,我只是改变了这个:

echo "<script>jQuery(document).ready( function(){alert('".$hello."');});</script>";

到此:

echo "<script>jQuery(document).ready( function(){alert('".$wonAwards."');});</script>";

2 个答案:

答案 0 :(得分:1)

嗯,根据Documentation Hereget_var会给你一个结果,而query会给你一些结果。

你真正想要的(获得所有结果)可以通过get_results方法实现,所以你应该写:

$wonAwards = $altdb->get_results("SELECT achievement_id 
                                FROM user_1
                               WHERE isTold='false'");

尝试并告诉我们它是否有效,希望这有用。

答案 1 :(得分:0)

据我了解你想设置数组而不是等于
希望这会奏效:

$wonAwards = $altdb->get_var("SELECT achievement_id 
                            FROM user_1
                           WHERE isTold 
                           IN ('false', 'true', 'another_value', 'some_other')");
@Shahmeer Navid的

编辑 如果您在数组中有一些数据,如

$array = array("data1", "data2", "data3");
$implode = implode("', '", $array);

//Output or $implode
data1', 'data2', 'data3

//apply on query
$wonAwards = $altdb->get_var("SELECT achievement_id 
                            FROM user_1
                           WHERE isTold 
                           IN ('$implode')");

PS 如果您从客户端获取数据,也可以使用mysql_real_escape_string()