Php 获取mysql查询中所有匹配项的数组?
这是我当前的代码:Php 获取mysql查询中所有匹配项的数组?,php,mysql,sql,wordpress,Php,Mysql,Sql,Wordpress,这是我当前的代码: $wonAwards = $altdb->get_var("SELECT achievement_id FROM user_1 WHERE isTold='false'"); 当前,$wonAwards设置为等于sql查询的第一个结果。是否可以将$wonAwards设置为等于查询所有结果的数组 //////////////////全功能 fu
$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>";
}
}
}
function加载wordpress头时调用的\u头函数()
if(is_user_logged_in()){//检查用户是否登录
全局$altdb;//wp全局数据库对象
$user\u info=wp\u get\u current\u user();
$wonAwards=$altdb->query(“从用户中选择成就\u id”。$user\u info->id.“WHERE isTold='false'”;//查询
如果(是数组($wonAwards))$hello='true';
如果(!is_数组($wonAwards))$hello='false';
如果($wonAwards!=''){
echo“jQuery(document).ready(function(){alert(''.$hello.'');});”;
}
}
}
至于检查我的查询结果是什么,我只是简单地更改了以下内容:
echo "<script>jQuery(document).ready( function(){alert('".$hello."');});</script>";
echo“jQuery(document).ready(function(){alert(“$hello.”);});”;
为此:
echo "<script>jQuery(document).ready( function(){alert('".$wonAwards."');});</script>";
echo“jQuery(document).ready(function(){alert(“$wonAwards.”);});”;
据我所知,您希望设置数组而不是等于希望这能奏效:
$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\u real\u escape\u string()
那么,根据,get\u var
将给您一个结果,query
将给您一个结果数
您真正想要的(获得所有结果)可以通过get_results
方法实现,因此您应该编写:
$wonAwards = $altdb->get_results("SELECT achievement_id
FROM user_1
WHERE isTold='false'");
请尝试并告诉我们它是否有效,希望能有所帮助。我们不知道
$altdb
是什么。$altdb只是一个包含数据库信息的对象,允许我建立连接并运行查询。我只需要知道如何从SELECT中获取数组作为结果query@ShahmeerNavid:通常查询的结果是一个数组,您的语句应该正常工作,我想问题在于get\u var
,可能它只获取数组的第一个元素。如果你有它的代码,请发布它,另外,你怎么知道,$wonAwards
只包含第一个结果,你是如何测试它的?@Mr.TAMER我也用以下代码尝试过:$wonAwards=$altdb->query(“从用户_1中选择成就\u id,其中isTold='false');它会产生相同的结果(我使用wordpress的全局数据库对象连接到数据库)。我将发布我的完整函数。你能解释最后一行吗?具体来说,参数('false'、'true'、…)正如我现在看到的代码,它的位发生了变化,我不知道wordpress的情况,但根据这个查询,让我们解释一下欢迎,文档总是正确的:)