我有一個休息服務,我發送一個獲取請求到我的數據庫中的表。我想用響應構建一個數組。我用這段代碼得到了我想要的數組結構,但問題是它只循環一次。爲什麼是這樣?如果我將第二個$ 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查詢中的表? –