Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan fungsi carian di web menggunakan php

Bagaimana untuk melaksanakan fungsi carian di web menggunakan php

PHPz
PHPzasal
2023-03-29 11:34:431554semak imbas

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.

  1. Buat borang carian

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.

  1. Mengendalikan permintaan carian

Serahkan permintaan carian ke fail search.php untuk diproses. Kodnya adalah seperti berikut:

<?php
// 获取提交的搜索关键词
$keyword = $_GET[&#39;keyword&#39;];

// 连接数据库
$conn = mysqli_connect(&#39;localhost&#39;, &#39;root&#39;, &#39;password&#39;, &#39;database&#39;);

// 查询匹配的结果
$result = mysqli_query($conn, "SELECT * FROM articles WHERE title LIKE &#39;%$keyword%&#39; OR content LIKE &#39;%$keyword%&#39;");

// 处理查询结果
while ($row = mysqli_fetch_assoc($result)) {
  // 显示搜索结果
  echo $row[&#39;title&#39;];
  // ...
}

// 关闭数据库连接
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.

  1. Carian padanan tepat

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'");
  1. Paparkan hasil carian dalam halaman

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=&#39;pagination&#39;>";
for ($i = 1; $i <= $pagecount; $i++) {
  if ($i == $page) {
    echo "<span class=&#39;current&#39;>$i</span>";
  } else {
    echo "<a href=&#39;search.php?keyword=$keyword&page=$i&#39;>$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.

  1. Gunakan carian teks penuh

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

Perkara di atas adalah mengenai penggunaan PHP untuk melaksanakan fungsi carian Web. Melalui langkah-langkah di atas, kami boleh menambah fungsi carian ke laman web dengan cepat dan meningkatkan pengalaman pengguna tapak web.

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!

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