Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menapis dan mengisih data menggunakan pertanyaan pangkalan data dan fungsi penapis hasil dalam PHP?

Bagaimana untuk menapis dan mengisih data menggunakan pertanyaan pangkalan data dan fungsi penapis hasil dalam PHP?

王林
王林asal
2023-07-25 17:48:161007semak imbas

Bagaimana untuk menggunakan pertanyaan pangkalan data dan fungsi penapisan hasil untuk penapisan dan pengisihan data dalam PHP?

Dalam PHP, cara paling biasa untuk berinteraksi dengan pangkalan data adalah untuk mendapatkan data yang diperlukan melalui pernyataan pertanyaan. Walau bagaimanapun, kadangkala kita perlu menapis dan mengisih hasil pertanyaan untuk mendapatkan data yang memenuhi syarat dan susunan tertentu. Untuk mencapai tujuan ini, PHP menyediakan satu siri fungsi penapisan hasil pangkalan data.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan pertanyaan pangkalan data dan fungsi penapisan hasil dalam PHP untuk menapis dan mengisih data, dan juga akan memberikan beberapa contoh kod untuk membantu pembaca memahami dengan lebih baik.

Pertama, kami menganggap bahawa kami telah menyambung ke pangkalan data dan mempunyai jadual bernama "pengguna" dengan medan berikut: id, nama, umur, jantina, e-mel. Kami perlu mendapatkan semua pengguna yang berumur lebih daripada 18 tahun melalui pernyataan pertanyaan dan mengisih mereka dalam susunan menurun mengikut umur. Berikut ialah contoh kod untuk mencapai matlamat ini: id, name, age, gender, email。我们需要通过查询语句获取所有年龄大于18岁的用户,并按照年龄降序排列。以下是实现这个目标的代码示例:

<?php
// 建立数据库连接
$conn = new mysqli("localhost", "username", "password", "database");

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 构建查询语句
$sql = "SELECT * FROM users WHERE age > 18 ORDER BY age DESC";

// 执行查询
$result = $conn->query($sql);

// 检查查询结果是否为空
if ($result->num_rows > 0) {
    // 循环遍历查询结果
    while ($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"] . " - 姓名: " . $row["name"] . " - 年龄: " . $row["age"] . " - 性别: " . $row["gender"] . " - 邮箱: " . $row["email"] . "<br>";
    }
} else {
    echo "没有符合条件的数据";
}

// 关闭连接
$conn->close();
?>

上述代码首先建立数据库连接,并构建查询语句。SELECT * FROM users WHERE age > 18 ORDER BY age DESC表示从"users"表中选择所有年龄大于18岁的用户,并按照年龄降序排列。注意,我们使用">"符号来进行筛选。

接下来,我们执行查询并检查结果是否为空。如果结果不为空,我们遍历结果集并输出每个用户的数据。最后,我们关闭数据库连接。

除了基本的查询和排序,PHP还提供了一些结果过滤函数,如mysqli_num_rows()函数来获取结果集中的行数,mysqli_fetch_assoc()函数来获取每一行的关联数组,等等。

如果我们只想获取一部分结果,可以使用LIMIT子句来限制返回的行数。例如,如果我们只想获取前10条数据,可以将查询语句修改为:SELECT * FROM users WHERE age > 18 ORDER BY age DESC LIMIT 10

<?php
// 建立数据库连接
$conn = new mysqli("localhost", "username", "password", "database");

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 构建查询语句
$sql = "SELECT * FROM users WHERE gender = 'male'";

// 执行查询
$result = $conn->query($sql);

// ... 省略其他代码 ...

// 关闭连接
$conn->close();
?>

Kod di atas mula-mula mewujudkan sambungan pangkalan data dan membina pernyataan pertanyaan. SELECT * FROM users WHERE umur > 18 ORDER BY age DESC bermaksud memilih semua pengguna yang berumur lebih daripada 18 tahun daripada jadual "pengguna" dan mengisih mereka dalam susunan menurun mengikut umur. Ambil perhatian bahawa kami menggunakan simbol ">" untuk menapis.

Seterusnya, kami melaksanakan pertanyaan dan menyemak sama ada hasilnya kosong. Jika hasilnya tidak kosong, kami akan mengulangi set hasil dan mengeluarkan data untuk setiap pengguna. Akhirnya, kami menutup sambungan pangkalan data.

Selain pertanyaan asas dan pengisihan, PHP juga menyediakan beberapa fungsi penapisan hasil, seperti fungsi mysqli_num_rows() untuk mendapatkan bilangan baris dalam set hasil, dan mysqli_fetch_assoc( ) berfungsi untuk Mendapatkan tatasusunan bersekutu bagi setiap baris, dsb.

Jika kita hanya ingin mendapatkan sebahagian daripada keputusan, kita boleh menggunakan klausa LIMIT untuk mengehadkan bilangan baris yang dikembalikan. Contohnya, jika kami hanya ingin mendapatkan 10 keping data pertama, kami boleh mengubah suai pernyataan pertanyaan kepada: PILIH * DARI pengguna DI MANA umur > ORDER MENGIKUT umur DESC LIMIT 10. 🎜🎜Selain itu, kita juga boleh menggunakan syarat lain untuk menapis, seperti equal, unequal, carian kabur, dsb. Berikut ialah contoh kod menggunakan syarat kesamarataan: 🎜rrreee🎜Kod di atas menanyakan semua pengguna yang jantinanya adalah lelaki. Ambil perhatian bahawa kami menggunakan simbol "='" untuk menapis keadaan yang sama. 🎜🎜Untuk meringkaskan, dengan menggunakan pertanyaan pangkalan data dan fungsi penapisan hasil, kami boleh menapis dan mengisih data dengan mudah dalam pangkalan data. Kod contoh di atas hanyalah pengenalan peringkat kemasukan, dan pembaca boleh melakukan pertanyaan dan operasi penapisan yang lebih kompleks mengikut keperluan sebenar. Pada masa yang sama, untuk memastikan kecekapan dan keselamatan pertanyaan pangkalan data, adalah disyorkan untuk menggunakan kaedah seperti pernyataan yang disediakan dan pengikatan parameter untuk mengelakkan serangan suntikan SQL. 🎜

Atas ialah kandungan terperinci Bagaimana untuk menapis dan mengisih data menggunakan pertanyaan pangkalan data dan fungsi penapis hasil dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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