我有以下代码:
function resultToArray($result) {
$rows = array();
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
// Usage
$query = 'SELECT q17, COUNT(q17) FROM tresults GROUP BY q17';
$result = $mysqli->query($query);
$rows = resultToArray($result);
//print_r($rows); // Array of rows
$result->free();
收回以下内容(仅摘录):
Array ( [0] => Array ( [q17] => [COUNT(q17)] => 7 ) [1] => Array ( [q17] => Admin & Clerical [COUNT(q17)] => 118 )......etc.
我正在努力的是如何返回数据,基本上,我需要的是一些代码来提取数据如下:
WHERE Array = Admin & Clerical BRING BACK THE COUNT(q17) number
我如何搜索数组,通常,我会使用类似的东西:
if($rows['q17']==$q[$i]){echo$rows['COUNT(q17)'];}
但这不起作用 - 我假设因为数组的每个部分都有两组数据?不知道如何处理这个。
答案 0 :(得分:1)
您可以使用 MYSQL 本身,使用HAVING
子句而不是WHERE
来实现此目的。
为此,请重写您的查询。
$query = 'SELECT q17, COUNT(q17) as qcount FROM tresults GROUP BY q17 HAVING q17="Admin & Clerical" ';
echo $row[0]['qcount']; //return 118
如果在从数据库中获取结果后仍然希望使用PHP,那就是它的完成方式:
function get_q17_count($rows, $q17){
foreach ($rows as $onerow) {
if($onerow['q17'] == $q17){
return $onerow['COUNT(q17)'];
}
}
}
答案 1 :(得分:0)
function resultToArray($results) {
$rows = array();
while($row = $results->fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
// Usage
$querys = 'SELECT q17, COUNT(q17) FROM tresults GROUP BY q17';
$results = $mysqli->query($querys);
$rows = resultToArray($results);
//print_r($rows); // Array of rows
$results->free();
function searchForId($id, $array) {
foreach ($array as $key => $val) {
if ($val['q17'] === $id) {
return $val['COUNT(q17)'];
}
}
return null;
}
使用以下方法调用该函数:
$id = searchForId($q[$i], $rows);echo " (".$id.")";