2017-05-26 24 views
0

如何显示MySQL查询结果作为数组显示MySQL查询数据作为阵列

mydeptid是一个数组

$sql = "SELECT * FROM ".$DB->prefix("settings")." WHERE uid='$myuid'"; 
$result = $DB->query($sql); 

while($row = $DB->fetchArray($result)) 
{ 
$uid=$row['uid']; 
$mydeptid[]=$row['deptid']; 


} 

$sql="SELECT * FROM DEPARTMENTS WHERE DEPTID=$mydeptid ORDER BY DEPTNAME ASC"; 
+0

您的问题是什么? –

+0

使用IN子句 – JYoThI

+0

它只显示一个结果 – sabahan

回答

2

作为每查询,我明白,你有一个部门ID的数组。因此,在查询中使用它们之前,必须将它们转换为字符串。请检查并尝试以下代码:

$sql = "SELECT * FROM ".$DB->prefix("settings")." WHERE uid='$myuid'"; 
$result = $DB->query($sql); 

while($row = $DB->fetchArray($result)) 
{ 
$uid=$row['uid']; 
$mydeptid[]=$row['deptid']; 
} 

$allDeptIds = implode(",", $mydeptid); 

$sql="SELECT * FROM DEPARTMENTS WHERE DEPTID in ($allDeptIds) ORDER BY DEPTNAME ASC"; 
+0

非常感谢你..这是诀窍:-) – sabahan

0

使用具有单个查询中的JOIN

$sql = "SELECT D.* FROM ".$DB->prefix("settings")." T 
JOIN DEPARTMENTS D ON D.DEPTID=T.deptid WHERE uid='$myuid'"; 
+0

谢谢....有没有其他方法,如果我想与它分开两个查询? – sabahan