我有一个休息服务,我发送一个获取请求到我的数据库中的表。我想用响应构建一个数组。我用这段代码得到了我想要的数组结构,但问题是它只循环一次。为什么是这样?如果我将第二个$ result更改为$ result2,它将返回false而不是编码数组。SQL中while循环只循环一次
/**
* @param int $id
* @url periodicalitem
* @return string
*/
public function getPeriodicalItem($id){
$mysqli = $this->db-> getConnection();
$query = 'SELECT * FROM periodicalitem WHERE
periodical_id = ' . $id;
$result = $mysqli->query($query);
$arr = array();
while ($row = $result->fetch_assoc()) {
$query = 'SELECT * FROM inst_codes WHERE id = ' . $row['inst_code'] . '';
$result = $mysqli->query($query);
while ($row2 = $result->fetch_assoc()) {
if($row['inst_code'] == $row2['id']){
$arr[$row2['id']] = array('name' => $row2['name'],
'data' => $arr[$row2['id']]['data'] ? array_push($arr[$row2['id']]['data'], $row) : array($row));
}
}
}
return json_encode($arr);
}
难道你不是指“While循环在PHP ...”吗? – jarlh
当然是的! – Nirakander
只是好奇,为什么你循环两次,而不是加入您的SQL查询中的表? –