Php 多查询选择使用错误的数组?
我有一个多重查询,选择哪一半有效。第一个查询是直截了当的Php 多查询选择使用错误的数组?,php,mysql,arrays,Php,Mysql,Arrays,我有一个多重查询,选择哪一半有效。第一个查询是直截了当的 $sql = "SELECT riskAudDate, riskClientId, RiskNewId FROM tblriskregister ORDER BY riskId DESC LIMIT 1;"; 即使我自己做,第二个似乎也不起作用: $sql ="SELECT LAST(riskFacility) FROM tbleClients"; 如果我去掉最后一个,它将返回表中该字段的第一个条目。我想使用LAST来获取该字段中的最
$sql = "SELECT riskAudDate, riskClientId, RiskNewId FROM tblriskregister ORDER BY riskId DESC LIMIT 1;";
即使我自己做,第二个似乎也不起作用:
$sql ="SELECT LAST(riskFacility) FROM tbleClients";
如果我去掉最后一个,它将返回表中该字段的第一个条目。我想使用LAST来获取该字段中的最后一个条目
当我自己进行第一次查询时,我会得到返回的数据,并且可以将其回显到屏幕上。当我加第二个(不加最后一个)时,我什么也得不到。这是我正在使用的
$result = $conn->query($sql);
if ($result == TRUE){
$r = $result->fetch_array(MYSQLI_ASSOC);
echo $r['riskAudDate'];
echo $r['riskClientId'];
echo $r['RiskNewId'];
echo $r['riskFacility'];
echo "<pre>";
print_r($r);
echo "</pre>";
}
因此,数组位对于多重查询似乎是错误的。返回的数据是每个表中的一行。它适用于最上面的查询,但添加到第二个查询中(我不确定这是否正确),整个查询都崩溃了。所以我想这是一个由两部分组成的问题。我的插入和返回的数组有什么问题
last()
函数,如果我没弄错的话,它只在ms access中受支持。在mysql中,您可以执行第1个查询中的操作:执行ORDERBY并将结果限制为1$conn->query($sql)
返回一个布尔值(可能为true),因此您不能对其调用$result->fetch\u数组(MYSQLI\u ASSOC)
。因为我们不知道$sql变量中到底有什么,所以我只能说,您需要调试代码来确定$conn->query($sql)
返回布尔值的原因在我看来,您试图同时执行两个SQL查询。 这是不可能的。分开做
$sql ="SELECT LAST(riskFacility) FROM tbleClients";
对于每个SQL查询
关于:
$sql ="SELECT riskFacility FROM tbleClients order by riskFacility desc limit 0,1";
由于MySQL中不存在最后一个函数,我建议您进行这样的排序(因为我不知道您对最后一个函数的意思)
什么是“多重查询”?您试图同时执行两个选择并从中获取结果?
fetch_array
如果没有结果,则返回null
。很抱歉,我删除了一些内容以单独测试它们,这里是正确的:$sql=“SELECT riskAudDate,riskClientId,RiskNewId from tblriskregister ORDER BY riskId DESC LIMIT 1;”$sql.=“从tbleClients中选择riskFacility”;这是从多重查询“$sql SELECT riskAudDate,riskClientId,RiskNewId from tblriskregister ORDER BY riskId DESC LIMIT 1”返回的结果;从tbleClients ORDER BY riskFacility DESC LIMIT 1'对不起,我不知道你的评论是什么意思。mysql手册说你可以这样做,谢谢我使用排序来获取我想要的记录。是的,但是它使用->多查询($sql)和->存储结果(),然后->获取所有(MYSQLI\u ASSOC),这是一种不同的方法。如果你喜欢,我可以重新构造我的答案好的,我们有进展。我正在使用多重查询并得到我想要的结果。我使用var_export将返回的内容打印到屏幕上。这就是我得到的:'(0=>数组('riskAudDate'=>'18-04-2016','riskClientId'=>'bob down','RiskNewId'=>'1',),)数组(0=>数组('riskFacility'=>'JJJJ',),)我现在需要获取riskClient,RiskNewId和riskFacility作为变量从数组中删除,这样我就可以使用它们了。这就是我要解决的问题。可能是这样:$riskClientId=$whatevervar[0][0]['riskClientId'];谢谢@snitch182,但我仍然认为我离找回任何东西还有几步之遥。为了清楚起见,这里是我现在使用的代码。我使用var_dump来查看返回的是什么,这是我需要的信息。它是两个数组。一个用于第一个查询,另一个用于第二个查询。
$sql ="SELECT LAST(riskFacility) FROM tbleClients";
$sql ="SELECT riskFacility FROM tbleClients order by riskFacility desc limit 0,1";