Pertama, kita perlu mencipta ujian pangkalan data ringkas
<?php $link = mysqli_connect('localhost','username','password','test'); mysqli_set_charset($link, "utf8"); if (!$link) { die("连接失败:".mysqli_connect_error()); } ?>
Buat kelas jadual baharu dan tetapkan 3 medan
jenis int id isihan.
Tajuk nama kategori jenis varchar.
Kategori jenis pid int.
Jadual yang serupa dengan yang berikut:
Idea:
Tentukan fungsi tersuai get_str, tetapkan kelas induk pid = 0, gunakan SQL Pernyataan itu menanyakan subkelasnya, meletakkan subkelas yang ditanya ke dalam $result
menggunakan gelung sementara untuk mengeluarkan subkelas, dan mencipta corak output dengan membina rentetan , panggil fungsi tersuai get_str, hantar id subkelas ke dalam fungsi tersuai,
dan kemudian teruskan pertanyaan peringkat seterusnya.
<?php function get_str($id = 0) { global $str; global $link; //global 关键词用于访问函数内的全局变量。 $sql = "select id,title from class where pid= $id"; $result = mysqli_query($link,$sql);//查询pid的子类的分类 if($result){//如果有子类 $str .= '<ul>'; while ($row = mysqli_fetch_array($result)) { //循环记录集 $str .= "<li>" . $row['id'] . "--" . $row['title'] . "</li>"; //构建字符串 get_str($row['id']); //调用get_str(),将记录集中的id参数传入函数中,继续查询下级 } $str .= '</ul>'; } return $str; } echo get_str(0); ?>
Keluaran adalah serupa dengan:
bahagian seterusnya