Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menanyakan subkategori dalam gelung dalam php

Bagaimana untuk menanyakan subkategori dalam gelung dalam php

zbt
Lepaskan: 2023-08-04 15:45:08
asal
1049 orang telah melayarinya

Cara untuk menggelung subkategori pertanyaan dalam PHP: 1. Anda perlu mencipta pangkalan data dan jadual kategori mudah 2. Anda perlu mengisi beberapa data sampel ke dalam jadual kategori 3. Mula menulis kod PHP untuk menggelung subkategori pertanyaan; 4. Wujudkan sambungan dengan pangkalan data 5. Semak sama ada sambungan berjaya 6. Tentukan fungsi untuk menanya subkategori secara rekursif; ; 10. Tiada Sebarang data terperingkat 11. Tutup sahaja sambungan pangkalan data.

Bagaimana untuk menanyakan subkategori dalam gelung dalam php

Persekitaran pengendalian tutorial ini: sistem windows10, versi php8.1.3, komputer DELL G3.

Dalam PHP, kita boleh menggunakan gelung untuk menanyakan subkategori. Dalam contoh berikut, kami akan menggunakan jadual kategori mudah sebagai pangkalan data contoh dan menanyakan subkategori melalui gelung.

1. Kita perlu mencipta pangkalan data dan jadual klasifikasi mudah. Kita boleh menggunakan pernyataan SQL berikut untuk mencipta jadual:

CREATE TABLE categories (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
parent_id INT(11)
);
Salin selepas log masuk

2. Kita perlu mengisi beberapa sampel data ke dalam jadual klasifikasi. Kita boleh menggunakan pernyataan SQL berikut untuk mengisi data:

INSERT INTO categories (name, parent_id) VALUES
('电子设备', NULL),
('手机', 1),
('电脑', 1),
('平板电脑', 1),
('苹果手机', 2),
('安卓手机', 2),
('华为手机', 2),
('戴尔电脑', 3),
('联想电脑', 3),
('iPad', 4),
('Surface', 4);
Salin selepas log masuk

3. Kita boleh mula menulis kod PHP untuk menanyakan subkategori dalam gelung. Berikut ialah kod contoh mudah:

// 建立与数据库的连接(请根据自己的数据库情况修改连接信息)
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "test";
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 定义一个函数,用于递归查询子分类
function querySubcategories($parent_id, $conn) {
$sql = "SELECT id, name FROM categories WHERE parent_id = $parent_id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row["name"] . "
";
// 递归查询子分类
querySubcategories($row["id"], $conn);
}
}
}
// 查询顶级分类
$query = "SELECT id, name FROM categories WHERE parent_id IS NULL";
$result = $conn->query($query);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row["name"] . "
";
// 调用函数查询子分类
querySubcategories($row["id"], $conn);
}
} else {
echo "没有任何分类数据";
}
// 关闭数据库连接
$conn->close();
?>
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menyambung ke pangkalan data, dan kemudian mentakrifkan pertanyaan fungsiSubkategori untuk menanya subkategori secara rekursif. Selepas itu, kami menanyakan kategori teratas dan memanggil fungsi ini untuk menanyakan subkategorinya. Akhirnya, kami menutup sambungan pangkalan data.

Dengan kod di atas, kami boleh menanyakan subkategori dalam satu gelung dan mengeluarkan hasil ke halaman.

Ringkasan:

Menggunakan gelung untuk menanyakan subkategori ialah keperluan biasa. Dengan menggunakan rekursi dalam PHP, kami boleh menanyakan semua subkategori dengan mudah dan memprosesnya secara fleksibel. Dalam aplikasi praktikal, kami boleh memproses dan memaparkan hasil pertanyaan mengikut keperluan

Atas ialah kandungan terperinci Bagaimana untuk menanyakan subkategori dalam gelung dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan