MySQL是一款廣泛應用于Web開發的關系數據庫管理系統。在Web應用中,使用MySQL存儲數據是很常見的操作。而在使用MySQL進行數據查詢時,我們有時需要將查詢結果轉換為json樹結構,以便于在Web應用中使用。
下面是一段示例代碼,演示如何將一個查詢結果轉換成json樹:
SELECT id, name, parent_id FROM departments ORDER BY parent_id, id; <?php //連接數據庫 $conn = mysqli_connect("localhost", "root", "password", "database"); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } //查詢部門表 $result = mysqli_query($conn, "SELECT id, name, parent_id FROM departments ORDER BY parent_id, id"); //將查詢結果轉換為json樹 $departments = array(); while ($row = mysqli_fetch_assoc($result)) { $id = $row['id']; $name = $row['name']; $parent_id = $row['parent_id']; if ($parent_id == null) { //根節點 $departments[$id] = array( 'name' =>$name, 'children' =>array() ); } else { //非根節點 $departments[$parent_id]['children'][$id] = array( 'name' =>$name, 'children' =>array() ); } } //將數組轉換為json $json = json_encode(reset($departments)['children']); echo $json; //關閉連接 mysqli_close($conn); ?>
這段代碼中,我們使用了mysqli_fetch_assoc方法從MySQL數據庫中查詢部門表,并使用PHP的數組來構建json樹結構。具體來講:我們在while循環中遍歷所有查詢結果,將結果分類到根節點和非根節點中。對于根節點,我們創建一個以id為key的數組,表示該節點的信息。而對于非根節點,我們將它們作為該節點父節點的“兒子”,并在父節點的數組中建立一個以自己id為key的數組,表示該節點的信息。
最后,我們將構建好的數組轉換為json格式,并輸出到頁面中。
這段示例代碼僅用于演示如何將MySQL查詢結果轉換為json樹結構。在實際開發中,我們可能需要對代碼進行優化,以提高查詢效率、防止SQL注入等問題。