Cara membuat mesin pencari di php dan mysqli

Anda harus menginstal dan menjalankan Apache, MySQL, dan PHP tentunya (Anda dapat menggunakan XAMPP untuk platform yang berbeda atau WAMP untuk windows, MAMP untuk mac) atau server/hosting web yang mendukung database PHP dan MySQL

Mari buat database, tabel dan isi dengan beberapa entri yang bisa kita gunakan untuk pencarian

  • Pergi ke phpMyAdmin, jika Anda memiliki server di komputer Anda, Anda dapat mengaksesnya di http. //localhost/phpmyadmin/
  • Buat basis data, saya beri nama saya tutorial_search
  • Buat tabel saya menggunakan 3 bidang, saya sebut artikel saya
  • Konfigurasi untuk bidang 1. Nama. id, ketik. INT, centang AUTO_INCREMENT, index. utama

INT artinya bilangan bulat
AUTO_INCREMENT berarti entri baru akan memiliki nomor lain (lebih tinggi) dari sebelumnya
Indeks. primary berarti bahwa kunci unik itu digunakan untuk mengidentifikasi baris

  • bidang ke-2. Nama. judul, jenis. VARCHAR, panjang. 225

VARCHAR artinya string teks, maksimum 225 karakter (diperlukan untuk menentukan panjang maksimum), gunakan untuk judul, nama, alamat
panjang berarti tidak boleh lebih dari 225 karakter (Anda dapat mengaturnya ke angka yang lebih rendah jika Anda mau)

  • bidang ke-3. Nama. teks, ketik. TEKS

TEXT berarti string panjang, tidak perlu menentukan panjang, gunakan untuk teks panjang

Cara membuat mesin pencari di php dan mysqli

Cara membuat mesin pencari di php dan mysqli

Cara membuat mesin pencari di php dan mysqli

  • Isi tabel dengan beberapa artikel acak (Anda dapat menemukannya di situs web berita, misalnya. CNN, BBC, dll. ). Klik sisipkan di menu atas dan salin teks ke bidang tertentu. Biarkan bidang "id" kosong. Masukkan setidaknya tiga

Seharusnya terlihat seperti ini


Cara membuat mesin pencari di php dan mysqli

  • 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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Search</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

</body>
</html>
  • Buat formulir dengan bidang pencarian dan tombol kirim di index. php, Anda dapat menggunakan metode GET atau POST, atur tindakan untuk mencari. php. Saya menggunakan "permintaan" sebagai nama bidang teks

DAPATKAN - artinya informasi Anda akan disimpan di url (http. //localhost/tutorial_search/search. php?query=Permintaan Anda)
POST - artinya informasi Anda tidak akan ditampilkan, ini digunakan untuk kata sandi, informasi pribadi, jauh lebih aman daripada GET

<form action="search.php" method="GET">
	<input type="text" name="query" />
	<input type="submit" value="Search" />
</form>
_

Ok, mari kita mulai dengan php

  • Buka pencarian. php
  • Start php ()
  • Hubungkan ke database (baca komentar dalam kode berikut)

<?php
	mysql_connect("localhost", "root", "") or die("Error connecting to database: ".mysql_error());
	/*
		localhost - it's location of the mysql server, usually localhost
		root - your username
		third is your password
		
		if connection fails it will stop loading the page and display an error
	*/
	
	mysql_select_db("tutorial_search") or die(mysql_error());
	/* tutorial_search is the name of database we've created */
	
	
	
?>

Anda dapat pergi dan memeriksa apakah tidak ada kesalahan

  • Now go to the part of the page
  • Saya menggunakan metode GET, jika Anda ingin menggunakan POST, gunakan saja $_POST daripada $_GET
  • Juga beberapa fungsi untuk membuatnya lebih aman. Baca komentar dalam kode
  • Kirim kueri ke basis data
  • Periksa apakah ada hasil
  • Jika ada, posting menggunakan while loop

<?php
	$query = $_GET['query']; 
	// gets value sent over search form
	
	$min_length = 3;
	// you can set minimum length of the query if you want
	
	if(strlen($query) >= $min_length){ // if query length is more or equal minimum length then
		
		$query = htmlspecialchars($query); 
		// changes characters used in html to their equivalents, for example: < to &gt;
		
		$query = mysql_real_escape_string($query);
		// makes sure nobody uses SQL injection
		
		$raw_results = mysql_query("SELECT * FROM articles
			WHERE (`title` LIKE '%".$query."%') OR (`text` LIKE '%".$query."%')") or die(mysql_error());
			
		// * means that it selects all fields, you can also write: `id`, `title`, `text`
		// articles is the name of our table
		
		// '%$query%' is what we're looking for, % means anything, for example if $query is Hello
		// it will match "hello", "Hello man", "gogohello", if you want exact match use `title`='$query'
		// or if you want to match just full word so "gogohello" is out use '% $query %' ...OR .. '$query %' .. OR .. '% $query'
		
		if(mysql_num_rows($raw_results) > 0){ // if one or more rows are returned do following
			
			while($results = mysql_fetch_array($raw_results)){
			// $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop
			
				echo "<p><h3>".$results['title']."</h3>".$results['text']."</p>";
				// posts results gotten from database(title and text) you can also show id ($results['id'])
			}
			
		}
		else{ // if there is no matching rows do following
			echo "No results";
		}
		
	}
	else{ // if query length is less than minimum
		echo "Minimum length is ".$min_length;
	}
?>

Selesai

Sekarang berhasil. Coba berbagai kata, variasi, kode pengeditan, eksperimen. Saya menambahkan kode lengkap dari kedua file jika Anda merasa melewatkan sesuatu. Jangan ragu untuk bertanya atau meminta tutorial

indeks. php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Search</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
	<form action="search.php" method="GET">
		<input type="text" name="query" />
		<input type="submit" value="Search" />
	</form>
</body>
</html>
_

Cari. php

<?php
	mysql_connect("localhost", "root", "") or die("Error connecting to database: ".mysql_error());
	/*
		localhost - it's location of the mysql server, usually localhost
		root - your username
		third is your password
		
		if connection fails it will stop loading the page and display an error
	*/
	
	mysql_select_db("tutorial_search") or die(mysql_error());
	/* tutorial_search is the name of database we've created */
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Search results</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<?php
	$query = $_GET['query']; 
	// gets value sent over search form
	
	$min_length = 3;
	// you can set minimum length of the query if you want
	
	if(strlen($query) >= $min_length){ // if query length is more or equal minimum length then
		
		$query = htmlspecialchars($query); 
		// changes characters used in html to their equivalents, for example: < to &gt;
		
		$query = mysql_real_escape_string($query);
		// makes sure nobody uses SQL injection
		
		$raw_results = mysql_query("SELECT * FROM articles
			WHERE (`title` LIKE '%".$query."%') OR (`text` LIKE '%".$query."%')") or die(mysql_error());
			
		// * means that it selects all fields, you can also write: `id`, `title`, `text`
		// articles is the name of our table
		
		// '%$query%' is what we're looking for, % means anything, for example if $query is Hello
		// it will match "hello", "Hello man", "gogohello", if you want exact match use `title`='$query'
		// or if you want to match just full word so "gogohello" is out use '% $query %' ...OR .. '$query %' .. OR .. '% $query'
		
		if(mysql_num_rows($raw_results) > 0){ // if one or more rows are returned do following
			
			while($results = mysql_fetch_array($raw_results)){
			// $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop
			
				echo "<p><h3>".$results['title']."</h3>".$results['text']."</p>";
				// posts results gotten from database(title and text) you can also show id ($results['id'])
			}
			
		}
		else{ // if there is no matching rows do following
			echo "No results";
		}
		
	}
	else{ // if query length is less than minimum
		echo "Minimum length is ".$min_length;
	}
?>
</body>
</html>

Komentar

Marco pada 18 Juni 2020

itu berfungsi dengan baik di php 5 tetapi ketika saya mengubah ke php lebih besar dari 6 tidak ada hasil yang keluar

jumat ajaib tgl 18 juni 2020

ini setengah selesai. Bagaimana jika saya mendapatkan 1000 record langsung dari database ??

mana paginationnya???

Gary pada 11 Mei 2020

Saya mencoba ini tidak berfungsi. Halaman menunjukkan kosong

kumarganeshb pada 06 April 2020

sangat bagus terima kasih

balasuriya pada 15 Maret 2020

bagus

yohannis pada 02 Januari 2020

ini adalah demo

Akshata A pada 18 Desember 2019

buat tombol pencarian menggunakan bootstrap atau php,,,,,tetapi kami ingin tombol pencarian GUI dengan metode yang mudah, dan juga kami kotak konten

Zakir hussain pada 31 Oktober 2019

Jika saya ingin mencari seperti sepatu pria terbaru atau sepatu untuk wanita atau sepatu wanita

lalu mana cara terbaik untuk melakukan pencarian

bruno pada 17 Oktober 2019

hukum

Ghassen pada 15 September 2019

Saya menggunakan kode Anda. Tapi aku punya masalah. mysqli_fetch_array() mengharapkan parameter 1 menjadi mysqli_result, boolean diberikan dalam(. ) on line

anto pada 28 Juli 2019

Ini bagus

migs pada 16 Juli 2019

Indeks yang tak terdefinisi. pertanyaan

Mengapa ini terjadi

Laxmi pada 09 Juli 2019

terima kasih atas kirimannya

Shubham Pandit pada 05 Juli 2019

Ini sangat bagus. itu membantu saya

Jimmy pada 29 Juni 2019

Terima kasih banyak dan sangat mudah dipahami

Nedum pada 28 Mei 2019

Bagaimana Anda menyusun kueri terstruktur jika Anda melakukan PDO?

Terutama karena itu mempengaruhi dua istilah "SEPERTI".

Apakah Anda menggunakan satu variabel untuk pelaksanaan pernyataan yang disiapkan atau dua variabel?

Pov pada 27 Mei 2019

terima kasih

Manis pada 26 Mei 2019

terima kasih

ali pada 26 Mei 2019

Bagus

rakesh Nama pada 18 Mei 2019

Bermanfaat

AsKas Jeremy pada 20 April 2019

Terima kasih atas artikel yang bagus. Itu membantu saya untuk pekerjaan kursus saya

web pada 14 April 2019

artikel bagus

tetapi 2 tahun yang lalu Anda dapat menggunakan $bdd = new PDO('. ')

bukan mysqlconnect gaya lama

suraj pada 29 Maret 2019

terima kasih

Manzini pada 19 Maret 2019

Ubah mysql ke mysqli untuk php lebih besar dari 5. 6

mufaddal pada 06 Maret 2019

dimana pencarian. html

Sunil Mathur pada 18 Januari 2019

Halo Pak

Kamana Girls Hostel pada 06 Januari 2019

ya sangat membantu

tidak diketahui pada 05 Januari 2019

Ini tidak berfungsi, fungsi yang dipanggil belum ditentukan

sitender pada 04 Januari 2019

kerja bagus

Aria pada 30 Desember 2018

konten yang bagus sangat membantu saya. )

diketahui pada 21 Desember 2018

bagaimana menambahkan banyak teks. berarti banyak halaman untuk situs web lengkap

Abu Zeenat pada 14 Desember 2018

Harap setelah mengedit kode itu menunjukkan Tidak Ada Database yang dipilih

alex pada 03 Desember 2018

ketika saya mencari saya hanya terhubung dengan sukses tidak ada hasil yang ditampilkan

vinoth pada 19 November 2018

Bekerja dengan sedikit modifikasi

dennis pada 11 November 2018

itu mengagumkan

hi mador pada 04 November 2018

kueri pembaruan php

Ravin pada 04 Oktober 2018

Berhasil terima kasih banyak

Pengalihan pada 29 September 2018

Bagaimana saya bisa mengalihkan pencarian ini ke halaman lain dan menampilkan hasilnya di halaman lain?

Youngfox pada 04 September 2018

@BrainzJnr Anda perlu membuat database di mysql atau jika kasusnya berbeda, periksa pengaturan izin Anda, tetapi jika itu tidak berhasil, buat saja database dengan nama lain pilihan Anda dan ubah kode mysqli agar sesuai dengan database Anda. dengan hanya mengubah di mana pun Anda melihat brainztech ke nama database yang Anda buat. jika itu tidak berhasil maka lakukan penelitian di youtube tentang menghubungkan mysql dan php terutama "Cara menggunakan panel kontrol xampp"

BrainzJnr pada 17 Agustus 2018

Tolong itu tidak bekerja untuk saya

Saya mendapatkan kesalahan ini

"Akses ditolak untuk pengguna ''@'localhost' ke database 'brainztech'"

Tapi saya telah terhubung ke database saya

Tolong bantu saya

terima kasih

Brainz pada 17 Agustus 2018

Tolong ini tidak bekerja untuk saya, saya mengerti

akses ditolak untuk pengguna

''@'localhost' ke basis data 'brainztech'

Marco pada 14 Agustus 2018

Terima kasih atas kodenya. berfungsi dengan baik di Godaddy tetapi tidak berfungsi di bluehost

Connor Brereton pada 08 Agustus 2018

Anda perlu memperbarui tutorial ini karena fungsi mysql_ sudah tidak digunakan lagi dan semua orang menggunakan mysqli atau PDO sekarang

Samuel pada 11 Juli 2018

Ini benar-benar berfungsi. terima kasih

Segera pada 05 Juli 2018

Banyak dari kode ini sudah usang. Sebaiknya catat ini di awal tutorial ini atau perbarui

benten pada 03 Juli 2018

di mana kode Anda

Ayo Celestine pada 25 Juni 2018

Wow ini benar-benar hebat. Terima kasih banyak

pratik pada 19 Juni 2018

apakah Anda memiliki video tutorial dari proyek berikut?

John Gachena pada 13 Juni 2018

Itu bagus, terima kasih. sudah selesai dilakukan dengan baik

verola pada 12 Juni 2018

Bekerja dengan sangat baik. Terima kasih

Ross pada 09 Juni 2018

Terimakasih banyak. Itu mudah dimengerti. Tuhan memberkati

lg pada 09 Juni 2018

bagus tapi tidak berfungsi

kouassi pada 30 Mei 2018

bagus kode sederhana. terima kasih

dekan pada tanggal 30 Mei 2018

Halo apa kabar

calpizsoftware pada 28 Mei 2018

Kesalahan Kesalahan

saya pikir sebelumnya harus if(isset($_POST['query'])){

}

juga $min_length = 3;

mbonisi tshuma pada 24 Mei 2018

Saya terus mendapatkan "Pemberitahuan. Indeks yang tak terdefinisi. pertanyaan"

bhanu pada 30 April 2018

luar biasa

sangat mudah

fhj pada 23 April 2018

mysql sudah usang - harap gunakan mysqli atau PDO

bn hjnb pada tanggal 13 April 2018

suka

burung pekakak pada 04 April 2018

terima kasih

shamli pada 02 April 2018

Kesalahan fatal. Kesalahan yang tidak tertangkap. Panggil ke fungsi yang tidak terdefinisi mysql_connect() di C. \xampp\htdocs\search\search. php. 2 Jejak tumpukan. #0 {main} dilemparkan ke dalam C. \xampp\htdocs\search\search. php di baris 2

Saya memiliki kesalahan ini, tolong beri tahu saya tentang itu

Sam pada 29 Maret 2018

Kerja bagus. Bisakah Anda juga menjalankan pencarian di beberapa tabel?

oke pada 27 Maret 2018

kodenya mudah tetapi tidak berfungsi

Sam pada 19 Maret 2018

kode Anda tidak berfungsi dengan baik tetapi mudah dimengerti

Paulus pada 28 Februari 2018

terima kasih banyak untuk kode yang mudah dimengerti. Kamu luar biasa

CK Mohammed pada 23 Februari 2018

Terima kasih banyak

SamGidolew pada 16 Februari 2018

Teman yang luar biasa. terima kasih

DON pada 09 Februari 2018

tolong buat videonya, dan maksud saya mencari database dan menampilkan hasil pencarian

Habit pada 07 Februari 2018

Saya suka situs web Anda

krishna pada 25 Januari 2018

bagaimana cara mendapatkan nilai kotak pencarian ke halaman berikutnya di php

Scott pada 24 Januari 2018

Ini luar biasa membutuhkan versi mysqli

raj kishor yadav pada 19 Januari 2018

sangat sangat membantu. saya sedang mencari ini selama berminggu-minggu. Terima kasih banyak

terus berbagi konten bernilai tinggi seperti itu

onyy pada 16 Januari 2018

terima kasih banyak

sjaan pada 16 Desember 2017

itu sangat mengagumkan. Terima kasih banyak telah berbagi ilmu yang begitu bermanfaat

dila pada 15 Desember 2017

mengapa $query adalah indeks yang tidak terdefinisi?

diam-diam pada 15 Desember 2017

Terima kasih banyak. Ini sempurna untuk situs web sederhana saya, hanya perlu melakukan beberapa penyesuaian dan berhasil

sampah tak berguna pada 11 Desember 2017

tidak berfungsi, jangan gunakan kode yang tidak berguna ini

kepada lloyd stephenn pada 10 Desember 2017

mysqli lebih baru dan Anda harus menggunakannya karena yang lain akan diambil seperti yang saya tahu

lloyd pada 10 Desember 2017

terima kasih banyak kawan

lloyd stephenn pada 10 Desember 2017

apa bedanya ketika Anda menggunakan mysqli selain mysql ?? tolong bantu saya

Zarif joya pada 09 Desember 2017

Terima kasih untuk kode yang bagus ini

sanjay pada 08 Desember 2017

Ini tidak bekerja untuk saya

tidak diketahui pada 04 Desember 2017

Ini tidak bekerja untuk saya

diketahui pada tanggal 30 November 2017

mana outputnya?

Nama pada 26 November 2017

Hanya pengujian

judith pada 21 November 2017

bagaimana cara mencari dari dua tabel yang berbeda?

CK pada tanggal 01 November 2017

Terima kasih - berhasil, sangat dihargai

Sekarang mencari pencarian sql atau pdo ;-)

joyce pada 13 Oktober 2017

kode tidak berfungsi tolong bantu

hassam pada 31 Agustus 2017

adakah yang bisa membantu saya bagaimana menampilkan saya catatan database saya di halaman saya dalam tabel. dan jika saya mengklik tombol pencarian tanpa memasukkan apapun ke dalam kotak input maka itu akan menampilkan semua catatan. saya baru dalam pengkodean

aa pada 25 Agustus 2017

terima kasih

elle pada 20 Agustus 2017

apa itu Kueri?

Ewan McQueen pada 17 Agustus 2017

Saya memiliki hasil pencarian yang ditampilkan tetapi tidak ada gambar

Ewan pada 17 Agustus 2017

Saya memiliki pencarian yang ditampilkan tetapi tidak ada gambar

Tosin pada 17 Agustus 2017

H, ini mendesak. Tolong saya ingin tahu apakah saya dapat memiliki tombol pencarian di beranda saya tanpa harus melalui formulir di halaman lain?

Bagaimana cara membuat kolom pencarian dengan PHP dan MySQLi?

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 pencarian di PHP?

php $query = $_GET['query']; // mendapatkan nilai yang dikirim melalui formulir pencarian $min_length = 3; .

Bagaimana cara membuat mesin pencari basis data?

Untuk membuat pencarian cepat dan mudah, sangat penting untuk menyimpan konten web di dalam basis data. .
Tuliskan persyaratan pencarian. .
Pilih mesin. .
Mulai Mesin. .
Tentukan Struktur Indeks. .
Siapkan Pembaruan Data. .
Mulailah membuat permintaan

Bagaimana cara membuat pencarian HTML dan PHP?

MySQL – Formulir PENCARIAN dengan HTML dan PHP .
Proyek Formulir Pencarian Sederhana
search.html
Search
.
phpSearch. php. .
Proyek Formulir Pencarian Kotak Pilihan