Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan fungsi carian di web menggunakan php
PHP ialah bahasa skrip sebelah pelayan yang digunakan secara meluas dalam pembangunan web Ia mempunyai fungsi dan fleksibiliti yang berkuasa serta boleh melaksanakan pelbagai fungsi yang kompleks. Antaranya, fungsi carian sudah pasti salah satu fungsi yang paling biasa digunakan oleh pengguna, jadi artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi carian Web.
Tambahkan borang carian pada halaman utama tapak web anda, biasanya kotak teks ringkas dan butang carian. Kodnya adalah seperti berikut:
<form action="search.php" method="get"> <input type="text" name="keyword" placeholder="搜索"> <input type="submit" value="搜索"> </form>
Antaranya, atribut action
menentukan fail pemprosesan apabila borang diserahkan sebagai search.php
dan atribut method
menentukan kaedah penyerahan sebagai get
. Anda juga boleh menggunakan post
Cara.
Serahkan permintaan carian ke fail search.php
untuk diproses. Kodnya adalah seperti berikut:
<?php // 获取提交的搜索关键词 $keyword = $_GET['keyword']; // 连接数据库 $conn = mysqli_connect('localhost', 'root', 'password', 'database'); // 查询匹配的结果 $result = mysqli_query($conn, "SELECT * FROM articles WHERE title LIKE '%$keyword%' OR content LIKE '%$keyword%'"); // 处理查询结果 while ($row = mysqli_fetch_assoc($result)) { // 显示搜索结果 echo $row['title']; // ... } // 关闭数据库连接 mysqli_close($conn); ?>
Mula-mula, dapatkan kata kunci $_GET
daripada data $keyword
, kemudian sambung ke pangkalan data dan gunakan pernyataan SELECT
untuk menanyakan hasil yang sepadan. Dalam contoh ini, semua artikel dalam jadual articles
yang tajuk dan kandungannya dipaparkan dengan kata kunci $keyword
akan ditanya.
Akhir sekali, proses hasil pertanyaan dan paparkannya pada halaman Jangan lupa untuk menutup sambungan pangkalan data pada penghujung.
Jika anda ingin mencapai carian padanan tepat, cuma tukar WHERE
dalam pernyataan LIKE
kepada =
. Kodnya adalah seperti berikut:
$result = mysqli_query($conn, "SELECT * FROM articles WHERE title = '$keyword'");
Apabila hasil carian disoal, ia biasanya dipaparkan pada berbilang halaman. Pada masa ini, adalah perlu untuk memaparkan hasil carian yang berkaitan mengikut bilangan halaman yang dibahagikan. Anda boleh menggunakan pernyataan LIMIT
PHP untuk menomborkan hasil pertanyaan. Kodnya adalah seperti berikut:
// 分页每页显示的条数 $pagesize = 10; // 当前页码 $page = isset($_GET['page']) ? intval($_GET['page']) : 1; // 查询总记录数 $count_result = mysqli_query($conn, "SELECT COUNT(*) AS count FROM articles WHERE title LIKE '%$keyword%' OR content LIKE '%$keyword%'"); $count_row = mysqli_fetch_assoc($count_result); $count = $count_row['count']; // 计算总页数 $pagecount = ceil($count / $pagesize); // 分页查询 $start = ($page - 1) * $pagesize; $limit = "$start, $pagesize"; $result = mysqli_query($conn, "SELECT * FROM articles WHERE title LIKE '%$keyword%' OR content LIKE '%$keyword%' LIMIT $limit"); // 处理查询结果 // ... // 显示分页链接 echo "<div class='pagination'>"; for ($i = 1; $i <= $pagecount; $i++) { if ($i == $page) { echo "<span class='current'>$i</span>"; } else { echo "<a href='search.php?keyword=$keyword&page=$i'>$i</a>"; } } echo "</div>";
Pertama, tentukan bilangan item yang dipaparkan pada setiap halaman dan nombor halaman semasa. Kemudian tanya jumlah hasil yang sepadan dan hitung jumlah halaman. Akhir sekali, gunakan pernyataan LIMIT
untuk menomborkan hasil pertanyaan dan memaparkan pautan halaman. Antaranya, parameter $start
dan $limit
digunakan untuk mengawal kedudukan permulaan dan kuantiti pertanyaan.
Selain menggunakan padanan tepat atau padanan kabur dalam kata kunci, anda juga boleh menggunakan carian teks penuh untuk mencapai padanan hasil yang lebih tepat. Carian teks penuh boleh dilaksanakan melalui pernyataan MATCH
dan AGAINST
yang disertakan dengan MySQL Penggunaannya adalah seperti berikut:
$result = mysqli_query($conn, "SELECT * FROM articles WHERE MATCH(title, content) AGAINST('$keyword' IN NATURAL LANGUAGE MODE)");
Kata kunci $keyword
akan dibahagikan secara automatik dan sepadan dengan dan title
Mana-mana medan dalam medan, dan akhirnya menyusun keputusan mengikut tahap yang sepadan dan memaparkan hasilnya. content
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi carian di web menggunakan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!