Bagaimana cara membuat pencarian dengan php dan mysql?

Tutorial ini akan mengajarkan Anda untuk membuat sistem pencarian dengan PHP dan MySQL. Anda akan belajar cara mengatur HTML, database MySQL, dan backend PHP. Dalam kode PHP, Anda akan belajar menggunakan pernyataan yang telah disiapkan dengan operator LIKE di SQL

Siapkan Basis Data

Unduh dan instal server XAMPP. Itu datang dengan MySQL. Luncurkan shell di panel kontrol XAMPP. Masuk ke shell MySQL dengan perintah berikut

# This login command assumes that the
# password is empty and the user is "root"
mysql -u root -p

Gunakan kueri SQL berikut untuk membuat database bernama

Query OK, 1 row affected (0.001 sec)
1

Keluaran

Query OK, 1 row affected (0.001 sec)
_

Anda akan membutuhkan data sampel yang dapat Anda gunakan. Jadi, jalankan SQL berikut pada database

Query OK, 1 row affected (0.001 sec)
1

CREATE TABLE fruit
(id INT NOT NULL AUTO_INCREMENT,
 name VARCHAR(20) NOT NULL,
 color VARCHAR(20) NOT NULL,
 PRIMARY KEY (id))
 ENGINE = InnoDB;
_

Keluaran

Query OK, 0 rows affected (0.028 sec)

Periksa struktur tabel

Keluaran

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20) | NO   |     | NULL    |                |
| color | varchar(20) | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
_

Setelah tabel disiapkan, gunakan SQL berikut untuk memasukkan data sampel

INSERT INTO fruit (id, name, color) VALUES (NULL, 'Banana', 'Yellow'), (NULL, 'Pineapple', 'Green')

Keluaran

Query OK, 2 rows affected (0.330 sec)
Records: 2  Duplicates: 0  Warnings: 0
_

Konfirmasikan keberadaan data dengan SQL berikut

Keluaran

+----+-----------+--------+
| id | name      | color  |
+----+-----------+--------+
|  1 | Banana    | Yellow |
|  2 | Pineapple | Green  |
+----+-----------+--------+
_

Buat Kode HTML

Kode HTML untuk sistem pencarian adalah bentuk HTML. Formulir memiliki input formulir tunggal dan tombol

Query OK, 1 row affected (0.001 sec)
3. Atribut
Query OK, 1 row affected (0.001 sec)
_4 dalam input formulir memastikan pengguna memasukkan sesuatu ke dalam formulir

Blok kode berikutnya adalah kode HTML untuk formulir pencarian


	
		
		Search
	

CSS berikut membuat formulir lebih rapi

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	display: grid;
	align-items: center;
	place-items: center;
	height: 100vh;
}

main {
	width: 60%;
	border: 2px solid #1560bd;
	padding: 2em;
	display: flex;
	justify-content: center;
}

input,
button {
	padding: 0.2em;
}

HTML harus seperti gambar berikutnya di browser web Anda

search php in mysql - HTML Search form

Buat Kode PHP

Kode PHP akan memproses pengiriman formulir. Berikut ringkasan cara kerja kode

  1. Periksa formulir yang dikirimkan pengguna
  2. Hubungkan ke basis data
  3. Keluar dari string pencarian dan rapikan ruang serba putih
  4. Periksa karakter yang tidak valid seperti
    Query OK, 1 row affected (0.001 sec)
    
    _5 atau
    Query OK, 1 row affected (0.001 sec)
    
    6 (tanpa tanda kutip)
  5. Lakukan pencarian melalui pernyataan yang disiapkan
  6. Kembalikan hasilnya

Blok kode selanjutnya adalah kode PHP lengkap untuk melakukan pencarian. Simpan kode dalam file bernama

Query OK, 1 row affected (0.001 sec)
7

Query OK, 1 row affected (0.001 sec)
_0

Gambar selanjutnya berisi hasil pencarian string

Query OK, 1 row affected (0.001 sec)
8. Ini mengembalikan buah
Query OK, 1 row affected (0.001 sec)
_9 dan warnanya

Anda dapat membuat fungsionalitas pencarian basis data langsung sederhana menggunakan Ajax dan PHP, di mana hasil pencarian akan ditampilkan saat Anda mulai mengetik beberapa karakter di kotak input pencarian

Dalam tutorial ini kita akan membuat kotak pencarian langsung yang akan mencari tabel negara dan menampilkan hasilnya secara asinkron. Tapi, pertama-tama kita perlu membuat tabel ini

Langkah 1. Membuat Tabel Database

Jalankan kueri SQL berikut untuk membuat tabel negara di database MySQL Anda

CREATE TABLE countries (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL
);

Setelah membuat tabel, Anda perlu mengisinya dengan beberapa data menggunakan pernyataan SQL INSERT. Sebagai alternatif, Anda dapat mengunduh tabel negara yang telah diisi sebelumnya dengan mengeklik tombol unduh dan mengimpornya ke database MySQL Anda

Silakan lihat tutorial tentang pernyataan SQL CREATE TABLE untuk informasi rinci tentang sintaks untuk membuat tabel di sistem database MySQL

Langkah 2. Membuat Formulir Pencarian

Sekarang, mari buat antarmuka web sederhana yang memungkinkan pengguna untuk langsung mencari nama negara yang tersedia di tabel negara kita, seperti pelengkapan otomatis atau kepala ketik

Buat file PHP bernama "search-form. php" dan masukkan kode berikut di dalamnya





PHP Live MySQL Database Search





    

Setiap kali konten input pencarian diubah atau peristiwa keyup terjadi pada input pencarian, kode jQuery (baris no-47 hingga 67) mengirimkan permintaan Ajax ke "backend-search. php" yang mengambil catatan dari tabel negara yang terkait dengan istilah yang dicari. Catatan-catatan itu nantinya akan dimasukkan ke dalam a

oleh jQuery dan ditampilkan di browser

Langkah 3. Memproses Permintaan Pencarian di Backend

Dan inilah kode sumber dari "backend-search. php" yang mencari database berdasarkan string kueri yang dikirim oleh permintaan Ajax dan mengirimkan hasilnya kembali ke browser

Contoh

PDO Berorientasi Objek Prosedural

Unduh

 0){
                // Fetch result rows as an associative array
                while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
                    echo "

" . $row["name"] . "

"; } } else{ echo "

No matches found

"; } } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); } } // Close statement mysqli_stmt_close($stmt); } // close connection mysqli_close($link); ?>
connect_error);
}
 
if(isset($_REQUEST["term"])){
    // Prepare a select statement
    $sql = "SELECT * FROM countries WHERE name LIKE ?";
    
    if($stmt = $mysqli->prepare($sql)){
        // Bind variables to the prepared statement as parameters
        $stmt->bind_param("s", $param_term);
        
        // Set parameters
        $param_term = $_REQUEST["term"] . '%';
        
        // Attempt to execute the prepared statement
        if($stmt->execute()){
            $result = $stmt->get_result();
            
            // Check number of rows in the result set
            if($result->num_rows > 0){
                // Fetch result rows as an associative array
                while($row = $result->fetch_array(MYSQLI_ASSOC)){
                    echo "

" . $row["name"] . "

"; } } else{ echo "

No matches found

"; } } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); } } // Close statement $stmt->close(); } // Close connection $mysqli->close(); ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Could not connect. " . $e->getMessage());
}
 
// Attempt search query execution
try{
    if(isset($_REQUEST["term"])){
        // create prepared statement
        $sql = "SELECT * FROM countries WHERE name LIKE :term";
        $stmt = $pdo->prepare($sql);
        $term = $_REQUEST["term"] . '%';
        // bind parameters to statement
        $stmt->bindParam(":term", $term);
        // execute the prepared statement
        $stmt->execute();
        if($stmt->rowCount() > 0){
            while($row = $stmt->fetch()){
                echo "

" . $row["name"] . "

"; } } else{ echo "

No matches found

"; } } } catch(PDOException $e){ die("ERROR: Could not able to execute $sql. " . $e->getMessage()); } // Close statement unset($stmt); // Close connection unset($pdo); ?>

Pernyataan SQL SELECT digunakan dalam kombinasi dengan operator LIKE (baris no-16) untuk menemukan catatan yang cocok di tabel basis data negara. Kami telah menerapkan pernyataan yang telah disiapkan untuk kinerja penelusuran yang lebih baik serta untuk mencegah serangan injeksi SQL

Catatan. Selalu filter dan validasi masukan pengguna sebelum menggunakannya dalam pernyataan SQL. Anda juga dapat menggunakan fungsi PHP mysqli_real_escape_string()_ untuk keluar dari karakter khusus dalam input pengguna dan membuat string SQL legal untuk melindungi dari injeksi SQL

Bagaimana cara membuat fitur pencarian dengan PHP dan MySQL?

Penyiapan Basis Data . Open XAMPP and Start Apache and MySQL. Klik “Baru”. Buat database yang disebut "pelengkapan otomatis" (atau apa pun yang Anda ingin menyebutnya). Salin dan tempel kueri berikut untuk membuat Tabel (pencarian), Nama kolom (Id, Nama), lalu masukkan data dummy.

Bagaimana cara membuat permintaan pencarian di PHP?

Seharusnya terlihat seperti ini. .
Buat folder di direktori server Anda dan dua file. indeks. php dan cari. php (sebenarnya kita bisa melakukan semua ini hanya dengan satu file, tapi mari kita gunakan dua, akan lebih mudah)
Isi dengan markup html default, doctype, head, dll

Bagaimana cara membuat permintaan pencarian di MySQL?

Di kisi pencarian, pilih tabel dan tampilan yang menarik atau biarkan semuanya dicentang. Untuk mempersempit cakupan data pencarian MySQL, pilih kotak centang tabel, tampilan, numerik, tipe teks, dan kolom tanggal. Untuk memulai pencarian, klik tombol Temukan atau tekan tombol Enter dari keyboard .

Bagaimana cara melakukan pencarian langsung di PHP MySQL?

PHP MySQL Ajax Pencarian Langsung .
Langkah 1. Membuat Tabel Database. Jalankan kueri SQL berikut untuk membuat tabel negara di database MySQL Anda. .
Langkah 2. Membuat Formulir Pencarian. .
Langkah 3. Memproses Permintaan Pencarian di Backend