我一直在從PHP程序編程轉向OOP。我有一個mysql數據庫與兩個表與1對多關係,我需要在列表中顯示該信息。我寫了下面的代碼,儘管代碼執行得很好,我真的不知道如果我仍然在'程序化'思考是否是最好的方法。我已經準備了以下聲明:PHP OOP:處理mysqli LEFT JOIN和數組的內容
$stmt = $mysqli_conn->prepare("SELECT display_name,
display_department,
display_region,
group_concat(approach_name) as approaches,
group_concat(length) as lengths,
group_concat(ascent) as ascents,
group_concat(gradient) as gradients
FROM table1 LEFT JOIN table2
ON table1.col_name=table2.col_name
GROUP BY table1.col_name");
這是下面的PHP代碼:
$stmt->execute();
$stmt->bind_result($display_name, $display_department, $display_region, $approaches, $lengths, $ascents, $gradients);
while($stmt->fetch()) {
echo $display_name. ' | '.$display_department.' | '.$display_region.'<br>';
$arr_approaches = explode(',', $approaches);
$arr_lengths = explode(',', $lengths);
$arr_ascents = explode(',', $ascents);
$arr_gradients = explode(',', $gradients);
$arrayLength=sizeof($arr_approaches);
for ($i=0; $i<$arrayLength; $i++) {
echo $arr_approaches[$i].' - '.$arr_lengths[$i].' | '.$arr_ascents[$i].' | '.$arr_gradients[$i];
echo '<br>';
}
echo '<br>';
unset($arrayLength);
}
$stmt->close();
具體我應該創建一個類爆炸,而不是顯示我怎麼做了,結果在這裏?
沒關係,我現在看到你的表沒有存儲爲CSV的字段。你正在做一個group_concat – developerwjk 2015-03-18 23:10:53
我認爲最好執行1個mysqli查詢並將結果分組到數組中,而不是嵌套mysqli查詢。 – keeper 2015-03-19 00:17:19