Bagaimana cara mencari kata kunci di php?

Posting ini menunjukkan cara menggunakan PHP untuk mengekstrak kata kunci yang dicari oleh pengguna saat mereka menemukan situs web Anda menggunakan mesin pencari. Bing, Google, dan Yahoo tercakup di sini dan Anda dapat dengan mudah menambahkan kode Anda sendiri ke kode PHP yang disediakan

Versi 2 dari skrip ini

Skrip dan posting ini telah sepenuhnya direvisi dan diperbarui dan diposting di sini. "PHP. dapatkan kata kunci dari url perujuk mesin pencari – versi 2". Ini memperhitungkan beberapa komentar yang dibuat pada posting ini dan juga akan berfungsi untuk string kueri #fragment yang diteruskan dari Google dan lainnya

Posting asli berikut ...

 

Fungsi PHP yang digunakan

Contoh kode di sini menggunakan fungsi parse_url untuk mengekstrak bagian dari URL pengarah dan kemudian fungsi parse_str untuk mengekstrak bagian string kueri menjadi variabel array. Saya telah membahas fungsi-fungsi tersebut sebelumnya dalam artikel berjudul "Ekstrak string kueri ke dalam array asosiatif dengan PHP"

URL perujuk disimpan di $_SERVER PHP superglobal sebagai $_SERVER['HTTP_REFERER'], tetapi hanya jika disetel oleh browser web. Saya telah membahas nilai ini secara rinci dalam tutorial berjudul "Menggunakan variabel HTTP_REFERER dengan PHP"

Contoh URL perujuk

Berikut beberapa contoh URL perujuk dari Bing, Google, dan Yahoo dari orang-orang yang membuka blog ini

http://www.bing.com/search?q=javascript+date+to+timestamp&src=IE-SearchBox&FORM=IE8SRC
http://www.google.de/search?q=apache+restart&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a
http://us.yhs.search.yahoo.com/avg/search?fr=yhs-avg-chrome&type=yahoo_avg_hs2-tb-web_chrome_us&p=concatenation+in+mysql

Anda dapat melihat dari melihat URL bahwa Bing dan Google menyimpan kata kunci sebagai variabel "q" dan Yahoo melakukannya dengan "p"

Kode

Berikut kode PHP untuk mengekstrak kata kunci yang dimasukkan dari contoh di atas

function search_engine_query_string($url = false) {

    if(!$url) {
        $url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : false;
    }
    if($url == false) {
        return '';
    }

    $parts = parse_url($url);
    parse_str($parts['query'], $query);

    $search_engines = array(
        'bing' => 'q',
        'google' => 'q',
        'yahoo' => 'p'
    );

    preg_match('/(' . implode('|', array_keys($search_engines)) . ')./', $parts['host'], $matches);

    return isset($matches[1]) && isset($query[$search_engines[$matches[1]]]) ? $query[$search_engines[$matches[1]]] : '';

}
_

Cara kerjanya adalah menggunakan URL yang diteruskan atau $_SERVER[‘HTTP_REFERER’] jika tidak ada yang diteruskan. Itu kemudian mengekstrak bagian-bagian dari URL (baris 10) dan kemudian memecah potongan-potongan string kueri menjadi nilai-nilai dalam array asosiatif (baris 11)

Daftar mesin pencari didefinisikan dari baris 13 sampai 17 sebagai array asosiatif yang berisi bagian utama dari domain (i. e. di www. google. com bit 'google') dipetakan ke nama variabel dalam string kueri. Anda dapat menambahkan mesin telusur tambahan ke larik ini

Perhatikan bahwa indeks array (i. e. bit 'google') digunakan untuk mencocokkan dengan domain mesin pencari menggunakan nilai indeks ini ditambah titik/titik. Oleh karena itu 'google' akan cocok dengan www. google. com, www. google. bersama. nz dan bahkan notgoogle. com

Ekspresi reguler dapat dimodifikasi untuk memastikan ada titik/titik di awal host ATAU host dimulai dengan domain, tetapi saya pribadi dengan senang hati membiarkannya apa adanya untuk saat ini;

Ekspresi reguler pada baris 19 cocok dengan nama mesin pencari ke dalam larik $matches, dan baris 21 mengembalikan kata kunci jika domain mesin pencari cocok dan variabel kata kunci ditemukan

Perhatikan bahwa parse_str akan menghapus penyandian URL apa pun, jadi mis. g. "javascript+date+to+timestamp" akan dikembalikan sebagai "javascript date to timestamp"

Contoh

Jadi inilah beberapa contoh menjalankan fungsi di atas menggunakan URL perujuk dari awal postingan

Memiliki mesin telusur untuk situs web Anda sangat penting untuk web saat ini. Jika pengguna Anda tidak dapat mencari konten situs Anda, sulit untuk membuat mereka melihat lebih banyak dari apa yang Anda tawarkan. Untungnya, mudah dan cepat untuk membuat mesin pencari sederhana dengan PHP, HTML, dan database MySQL. Semua dengan video tutorial disertakan. Plus unduhan sumber terbuka gratis juga tersedia di sini

Video How-To Mesin Pencari Sederhana

Video tutorial tentang cara membuat mesin pencari sederhana di PHP ini terdiri dari dua bagian

  • Bagian 1. https. //Youtube. be/B-ywDE8tBeQ (cara membuat mesin pencari sederhana)
  • Bagian 2. https. //Youtube. be/BV3hHeGrxd8 (cara menambahkan entri baru ke database mesin pencari)

Tutorial php ini memiliki unduhan kode sumber terbuka GRATIS yang tersedia
Unduh Kode Sumber

Gaya untuk Mesin Pencari (dengan CSS)

Untuk kesederhanaan, saya tidak akan fokus pada cara membuat tampilan mewah untuk mesin pencari. Saya hanya akan menggunakan lembar gaya CSS siap pakai yang sudah saya siapkan, bernama main. css. Jadi dengan cara ini kita bisa masuk ke seluk beluk kode PHP
(Stylesheet akan disertakan dalam unduhan kode sumber di atas)

Buat Formulir Mesin Pencari

<form action="" method="GET" name="">
	<table>
		<tr>
			<td><input type="text" name="k" value="<?php echo isset($_GET['k']) ? $_GET['k'] : ''; ?>" placeholder="Enter your search keywords" /></td>
			<td><input type="submit" name="" value="Search" /></td>
		</tr>
	</table>
</form>

Kode penting yang perlu diperhatikan dari form adalah semua atribut form dan atribut text box

  • tindakan=”. /indeks. php” – tindakan form adalah tujuan akhir. Ini akan menjadi lokasi skrip yang akan melakukan semua pemecahan kode. Untuk mesin pencari kami, index. php akan menjadi satu-satunya file yang sedang kami kerjakan. Dan karena itu kami akan membuat skrip mengirimkan permintaan url kembali ke dirinya sendiri
  • metode = "GET" - jenis metode GET adalah apa yang akan membawa teks yang dimasukkan ke dalam kotak teks dan membuangnya ke url untuk pengguna. Seperti saat Anda melihat “search. php?k=php+tutorial” (dengan tanda tambah menjadi tempat penampung spasi). Itu adalah permintaan GET yang diteruskan di URL
  • input type="text" – tipe "text" hanya akan melakukan itu, jadikan input sebagai input teks (gila, saya tahu)
  • name="k" - "nama" bisa menjadi apa pun yang Anda inginkan. Perlu diingat itu akan ditampilkan di browser pengguna, seperti contoh di atas. Jadi biasanya url yang lebih pendek lebih baik
  • value="" – memiliki nilai "" (kosong) akan membuat kotak teks selalu kosong saat pengguna pertama kali melihatnya. Ini tidak benar-benar diperlukan, tetapi itu membuat segalanya menjadi sedikit lebih bersih

Lihat ini.   Dasar-dasar PHP. Tutorial Basis Data MySQL

Dengan style sheet kami dan semua formulir lainnya yang telah disiapkan, kami melihat formulir pencarian dasar kami ditampilkan di bawah. Cukup manis, eh?

Bagaimana cara mencari kata kunci di php?
Bagaimana cara mencari kata kunci di php?

Membuat Struktur Database Mesin Pencari (menggunakan MySQL/phpMyAdmin)

Selanjutnya kita akan mengatur struktur database SQL back-end untuk mesin pencari. Karena mesin pencari kita sederhana, database MySQL kita juga akan sederhana. Hanya beberapa field untuk menyimpan data kita. Untuk membuat database dan tabelnya, saya suka menggunakan phpMyAdmin untuk mengelola backend database MySQL

Bidang basis data yang akan kita butuhkan

Berikut ini adalah daftar bidang database MySQL yang pada akhirnya akan kami perlukan untuk mesin pencari kami

  • bidang id unik untuk dengan mudah mengakses informasi dalam database
  • judul situs yang dapat dicari pengguna
  • url yang akan diarahkan ke mereka
  • uraian kecil yang bagus atau deskripsi tentang apa yang dilakukan situs tersebut
  • dan kata kunci yang dapat digunakan untuk mencari catatan individu

Penting untuk dicatat bahwa bidang id harus disetel ke kenaikan otomatis dan kunci utama. Melakukan hal ini memungkinkan kita untuk memiliki pengidentifikasi unik yang bertambah secara otomatis untuk setiap record dalam database. Ini juga memungkinkan kueri yang kami jalankan terhadap database menjadi lebih cepat

Bagaimana cara mencari kata kunci di php?
Bagaimana cara mencari kata kunci di php?

Sekarang front-end dan database sudah siap, kita dapat beralih ke bagian yang menyenangkan dari skrip mesin pencari yang sebenarnya. Kode untuk mengoperasikan mesin pencari akan datang dalam beberapa bagian. Pertama kita perlu mendapatkan kata kunci yang dicari pengguna dan memformatnya untuk kita gunakan. Kemudian kita dapat terhubung ke database dan menjalankan kueri. Dan terakhir kita bisa menampilkan kembali hasil pencarian ke pengguna

Dapatkan Kata Kunci Mesin Pencari

// get the search terms from the url
$k = isset($_GET['k']) ? $_GET['k'] : '';

// create the base variables for building the search query
$search_string = "SELECT * FROM search_engine WHERE ";
$display_words = "";
					
// format each of search keywords into the db query to be run
$keywords = explode(' ', $k);			
foreach ($keywords as $word){
	$search_string .= "keywords LIKE '%".$word."%' OR ";
	$display_words .= $word.' ';
}
$search_string = substr($search_string, 0, strlen($search_string)-4);
$display_words = substr($display_words, 0, strlen($display_words)-1);

Kami mulai dengan membuat beberapa variabel yang akan kami andalkan untuk skrip

Mulai buat kueri penelusuran

$k… – menggunakan pernyataan boolean bersarang kita dapat memastikan bahwa url memberi kita kata kunci pencarian untuk digunakan. Mendapatkan input dari pengguna menggunakan metode ini membantu dengan tidak mengembalikan kesalahan untuk variabel yang tidak ditentukan kepada pengguna

$search_string… – kita mengatur basis query untuk dijalankan terhadap database

Lihat ini.   Tambahkan favicon ke Situs Web Anda. ukuran terbaik, format terbaik

$display_words… – cukup buat string kosong untuk digunakan nanti. Khususnya untuk menampilkan versi terformat dari apa yang dicari pengguna kembali kepada mereka

Menambahkan setiap kata kunci ke string pencarian

$keywords… – menggunakan fungsi burst, kita dapat mengambil string normal dan mengubahnya menjadi array dari data yang sama. Menggunakan larik membuat tugas seperti menelusuri kalimat kata demi kata menjadi sangat mudah. Parameter pertama adalah string yang ingin Anda hancurkan. Dalam kasus kami, kami memisahkan semua kata kunci menjadi kata-kata individual. Parameter selanjutnya adalah kalimat yang ingin Anda pisahkan (mis. g. variabel $k)

foreach… – menggunakan pernyataan foreach kita dapat dengan cepat mengurai setiap item dari $keywords array dengan mudah dan tanpa omong kosong tambahan. Kami dapat membagi setiap elemen array menjadi yang terpisah. Kemudian simpan dalam variabel yang dapat dikerjakan secara rekursif

$search_string… – kita mengambil setiap $kata dari $keywords. Kemudian memformatnya ke dalam string kueri kami yang nantinya dapat kami cari di database. Nantinya, dengan menggunakan perintah LIKE query kita bisa mencari string di bidang database kata kunci kita. Dan dengan menggunakan % (tanda persen) di bagian dalam tanda kutip, kueri akan mencari $word kita di mana pun di database. Inilah keajaiban sebenarnya dari mesin pencari di sini

Dua baris terakhir hanya untuk menghapus karakter tambahan dari variabel $search_string dan $display_words. Ini membantu memformatnya dengan benar untuk kueri dan menampilkannya kembali ke pengguna

Lihatlah tampilan kueri MySQL

Jika kami mengulangi kueri yang baru kami buat setelah mencari sesuatu seperti "nickfrosty", kami akan melihat sesuatu seperti ini

SELECT * FROM search_engine WHERE keywords LIKE '%nickfrosty%' 
_

Sambungkan ke Database MySQL dan Proses Permintaan

// connect to the database
$conn = mysqli_connect("localhost", "root", "password", "tutorials");

// run the query in the db and search through each of the records returned
$query = mysqli_query($conn, $search_string);
$result_count = mysqli_num_rows($query);

// display a message to the user to display the keywords
echo '<div class="right"><b><u>'.number_format($result_count).'</u></b> results found</div>';
echo 'Your search for <i>"'.$display_words.'"</i><hr />';

Sekarang setelah kueri kami dibuat, kami perlu terhubung ke server SQL dan memilih database. Kami akan melanjutkan dan menjalankan string kueri terhadap database. Kami juga mendapatkan jumlah baris yang dikembalikan dari melakukannya

Jika Anda ingin mempelajari lebih lanjut tentang beberapa perintah php dan MySQL serta cara kerjanya, lihat tutorial saya di sini. Ini mencakup semua dasar-dasar operasi PHP dan MySQL/MySQLi

Menampilkan Hasil Mesin Pencari kepada Pengguna

Sekarang setelah kita memiliki semua hasil basis data, kita dapat mulai menampilkan hasil tersebut kepada pengguna. Untuk kemudahan html, kami hanya akan menampilkannya dalam format tabel sederhana

// check if the search query returned any results
if ($result_count > 0){

	// display the header for the display table
	echo '<table class="search">';
	
	// loop though each of the results from the database and display them to the user
	while ($row = mysqli_fetch_assoc($query)){
		echo '<tr>
			<td><h3><a href="'.$row['url'].'">'.$row['title'].'</a></h3></td>
		</tr>
		<tr>
			<td>'.$row['blurb'].'</td>
		</tr>
		<tr>
			<td><i>'.$row['url'].'</i></td>
		</tr>';
	}
	
	// end the display of the table
	echo '</table>';
}
else
	echo 'There were no results for your search. Try searching for something else.';
_

Periksa terlebih dahulu untuk memastikan bahwa ada beberapa hasil yang dikembalikan dari database dan tampilkan hasilnya sesuai dengan itu

Lihat ini.   Perbaikan untuk Kesalahan Fatal PHP. Kesalahan ukuran memori yang diizinkan

Menggunakan while loop, Anda dapat mem-parsing setiap hasil yang dikembalikan dari kueri penelusuran yang kami buat sebelumnya. Variabel $row menyimpan setiap record individual pada setiap lintasan loop. Hasil ini disimpan sebagai larik asosiatif yang dapat kami proses atau tampilkan. Pada dasarnya ini berarti bahwa kita akan dapat menangani/memformat/menampilkan setiap hasil yang dikembalikan satu per satu. Masing-masing disimpan dalam variabel $row yang sama

Jika Anda ingin mempelajari lebih lanjut tentang cara kerja fungsi mysqli_fetch_assoc, Anda dapat melihat artikel saya tentang dasar-dasar MySQL

Kemudian kita dapat melihat masing-masing bidang catatan basis data dengan mengambilnya dari array asosiatif. Untuk mempermudah, saya hanya akan menampilkan setiap hasil dalam tabel yang rapi. Lalu biarkan stylesheet saya membuatnya sedikit lebih menyenangkan untuk dilihat

Kumpulkan semuanya dan apa yang Anda dapatkan?

Sekarang kami memiliki mesin pencari yang berfungsi. Di bawah ini adalah apa yang akan ditampilkan jika Anda mencari "php". Berhasil hanya menampilkan hasil yang menyertakan istilah pencarian, sama seperti seharusnya mesin pencari yang bagus

Bagaimana cara mencari kata kunci di php?
Bagaimana cara mencari kata kunci di php?

Apakah kamu menyukai ini?

  • Klik untuk berbagi di Twitter(Buka di jendela baru)
  • Klik untuk berbagi di Facebook(Membuka di jendela baru)
  • Klik untuk berbagi di LinkedIn (Buka di jendela baru)
  • Klik untuk berbagi di Reddit (Membuka di jendela baru)
  • Klik untuk berbagi di Tumblr (Buka di jendela baru)
  • Klik untuk berbagi di Pinterest (Buka di jendela baru)
  • Klik untuk berbagi di WhatsApp (Membuka di jendela baru)
  • Klik untuk mengirim email ini ke teman(Buka di jendela baru)

Seperti ini

Suka Memuat.

Tutorial dan Artikel Terkait

pencarian mesin php

Terakhir diubah. 17 Januari 2023

Bagaimana cara mencari kata kunci di php?
Kisah Sebelumnya
Cara Memindahkan Situs Web Anda Dari Satu Server ke Server Lain

Tentang Penulis / Nick

Selalu memiliki kecintaan untuk mengajar dan membantu orang lain, Nick menciptakan HeyTuts pada tahun 2015. Memulai karir YouTube-nya membuat tutorial pemrograman pengembang web, HeyTuts telah bercabang ke banyak kategori terkait teknologi lainnya

37 Membalas "Membuat Mesin Pencari Sederhana dengan PHP (unduh sumber terbuka)"

  1. Mrinmoy berkata.

    Hai Nick, terima kasih untuk tutorial yang luar biasa ini. Tetapi tautan unduhan untuk file proyek tidak berfungsi. Bisakah Anda memberikan tautan yang tepat untuk mengunduh file proyek

    Memuat

    • Nick berkata.

      Terimakasih atas peringatannya. Saya baru saja memperbaiki tautan di pos. Kode sumber tersedia di sini. https. // www. heytuts. com/unduh/kode-sumber-mesin-pencarian-sederhana/

      Memuat

      • Yang Hebat berkata.

        Terima kasih banyak Nik. Kamu Menakjubkan

        Memuat

        • Nick berkata.

          Terima kasih atas kata-kata baiknya

          Memuat

  2. abhishek .

    mengapa saya mendapatkan error di baris no 70,index. file php

    Memuat

    • Nick berkata.

      Tidak yakin. Kirimi saya salinan file yang bermasalah dan saya dapat melihatnya 🙂

      Memuat

  3. Dan mengatakan.

    Hai Nick, saya ingin bertanya mengapa kode sumbernya sangat berbeda dengan video youtube Anda tentang cara membuat mesin pencari. Kami sedang mencoba untuk mengikuti video youtube Anda dan menggunakan kode sumber yang Anda berikan. Kami terus mengalami kesalahan dan ingin mendapatkan panduan lebih lanjut tentang kode sumber atau video youtube asli yang Anda buat

    Memuat

    • Ucap Nova Andre Saputra .

      Menurut saya, kodenya tidak berbeda 😕 mungkin bisa dicek lagi

      Memuat

      • Nick berkata.

        Kode dulu berbeda. Saya sedang dalam proses memperbarui artikel, video, dan pengunduhan kode sumber. Mereka semua sama sekarang 🙂

        Memuat

    • Nick berkata.

      Itu tergantung pada video mana yang Anda tonton di YouTube. Kode sumber dan artikel ini untuk tutorial Mesin Pencari yang diperbarui yang saya buat pada Januari 2020. Pastikan Anda menonton video yang diperbarui

      Memuat

  4. WordPress Pingbacks dan Semua yang harus Anda ketahui - HeyTuts mengatakan.

    […] https. // www. heytuts. com/web-dev/php/simple-search-engine-in-php […]

    Memuat

  5. Samer Houri berkata.

    sebagai Mrinmoy
    Hai Nick, terima kasih untuk tutorial yang luar biasa ini. Tetapi tautan unduhan untuk file proyek tidak berfungsi. Bisakah Anda memberikan tautan yang tepat untuk mengunduh file proyek. Samar

    Memuat

    • Nick berkata.

      Saya memeriksa tautan itu lagi di komputer saya, dan tidak ada masalah dengannya. Apa yang terjadi ketika Anda mengkliknya?

      Memuat

  6. Sultan Rustamov berkata.

    Halo Nick, terima kasih untuk tutorialnya tetapi saya tidak melihat tautan unduhan kode sumber, silakan tinggalkan di sini

    Memuat

    • Nick berkata.

      Ini dia. Saya akan memeriksa untuk memastikan tautan dimuat dengan benar di halaman artikel. https. // www. heytuts. com/unduh/kode-sumber-mesin-pencarian-sederhana/

      Memuat

  7. Josiah Boziah mengatakan.

    Terima kasih tutorialnya yang luar biasa. Saya sedang mengerjakan situs web musik, saya ingin membuat pencarian untuk mencari semua halaman, pengguna cukup mengetik nama artis atau judul lagu ke dalam pencarian dan itu akan mengembalikan semua lagu yang terkait dengan artis itu atau lagu tertentu yang diminta pengguna . Bagaimana saya bisa menambahkan fungsionalitas itu ke tutorial pencarian Anda?

    Memuat

    • Nick berkata.

      Itu seharusnya cukup mudah untuk mengadaptasi mesin pencari sederhana ini
      Pertama, saya akan membuat tabel baru untuk artis. Memberikannya beberapa bidang seperti ID artis dan nama artis. Kemudian buat tabel lain untuk album, berikan bidang seperti ID artis, nama album, sampul album, tanggal rilis, dan info lain yang ingin Anda tampilkan
      Selanjutnya, buat tabel bernama lagu dengan bidang seperti ID album, judul lagu, dll

      Perhatikan bagaimana setiap tabel memiliki bidang ID untuk bagian hierarki musik berikutnya yang lebih tinggi. Lagu memiliki ID album. Album memiliki ID artis. Begitulah cara Anda menyatukan semua info dalam database
      Kemudian di string kueri pencarian, Anda dapat mencari judul lagu. Hasil lagu akan memberi Anda ID album, yang dapat Anda gunakan untuk mendapatkan semua lagu lain dari album atau artis tersebut

      Masuk akal?

      Memuat

  8. Josiah Boziah mengatakan.

    Saya menerima balasan Anda melalui email, saya tidak melihat komentar saya di sini. Tetapi sehubungan dengan pengguna yang mencari semua halaman di situs web saya untuk lagu saya, pertanyaan yang saya miliki adalah, apakah saya perlu memasukkan semua artis & lagu ke dalam Database?

    Memuat

    • Nick berkata.

      Super aneh, komentarnya masih tercantum. Aneh. Omong-omong…
      Ya, Anda harus memasukkan semua info artis dan lagu ke dalam database. Kecuali Anda dapat menemukan beberapa database yang dapat Anda unduh yang sudah memiliki yang Anda inginkan

      Memuat

  9. Joe Cardamone mengatakan.

    Hai Nick, terima kasih untuk tutorialnya yang bagus. Semua berjalan baik dengan pengkodean dan unduhan
    Tolong satu pertanyaan, saya telah menambahkan bidang ke tabel saya yang disebut "urutkan" karena saya ingin mengurutkan hasil berdasarkan jenis hasil (misalnya pdf halaman html v pdf)
    Bagaimana saya bisa memasukkan semacam ke dalam kode?
    Terima kasih,
    Joe

    Memuat

    • Nick berkata.

      Hai Joe. Pertanyaan bagus. Apakah Anda hanya mencoba menyortir info pada halaman yang sedang ditampilkan kepada pengguna? . Kemudian dalam kode php tempat Anda membuat kueri pencarian itu sendiri (variabel $search_string), tambahkan perintah SQL Anda untuk melakukan jenis penyortiran yang diinginkan, menggunakan pernyataan if. Jadi untuk contoh file pdf, saya akan menulis seperti ini

      if ($_GET['sort'] == 'pdf')
      $search_string .= ' AND url LIKE '%.pdf' ';
      // the % sign at the beginning means the url must end with ".pdf" but can have any other text at the beginning

      Di sisi lain, agar ini berfungsi, Anda harus membungkus seluruh bagian kata kunci dari string pencarian kueri dalam tanda kurung. Itu karena SQL akan mengikuti urutan operasi, seperti halnya matematika

      Jadi ketika semua dikatakan dan dilakukan, kueri SQL Anda akan terlihat seperti ini (dengan asumsi Anda mencari "nama orang" dengan semacam "PDF")
      “PILIH * DARI search_engine WHERE (kata kunci SEPERTI '% orang%' ATAU kata kunci SEPERTI '% nama%') DAN url SEPERTI '%. pdf’ “

      Memuat

  10. Joe Cardamone mengatakan.

    Terima kasih atas jawaban cepatnya Nick. Bisakah saya mengambil lebih banyak waktu Anda untuk menjelaskan lebih lanjut?

    Basis data saya adalah
    id judul url kata kunci Urutkan
    1 satu Http. w halo 3
    2 dua Http. x halo 1
    3 tiga Http. y halo 2
    4 empat Http. z selamat tinggal 1

    Jadi jika kita mencari kata kunci “hello” maka hasil yang ditampilkan adalah

    dua Http. x halo 1
    tiga Http. y halo 2
    satu Http. w halo 3

    Saya tidak membutuhkan pengguna untuk dapat mengurutkan hasil ini, hanya untuk menampilkan sesuai urutan yang saya inginkan

    Harap Anda dapat membantu

    terima kasih

    Joe

    Memuat

    • Nick berkata.

      Ahhh aku mengerti maksudmu. Itu bahkan lebih mudah dari apa yang saya pikirkan sebelumnya. Anda dapat menggunakan perintah SQL bawaan "ORDER BY"
      Di akhir $search_string Anda, Anda perlu menambahkan perintah "ORDER BY" dan kemudian menyatakan jika Anda ingin memesan naik (alias 1,2,3 menggunakan "ASC") atau turun (alias 3,2,1 menggunakan "

      Jadi kueri SQL Anda akan keluar seperti ini
      "PILIH * DARI search_engine WHERE (kata kunci SEPERTI '% orang%' ATAU kata kunci SEPERTI '% nama%') ORDER BY sort DESC"

      Dan itu dia

      Memuat

      • Joe Cardamone mengatakan.

        Terima kasih Nick, sayangnya saya tidak dapat menjalankan ini
        Kode saya sesuai dengan kode Anda di atas, dengan tambahan () di sekitar kata kunci dan ORDER BY 'sort' di bagian akhir

        // PERIKSA UNTUK MELIHAT APAKAH KATA KUNCI DIBERIKAN
        jika (isset($_GET['k']) && $_GET['k']. = ”){
        // simpan kata kunci dari url
        $k = pangkas($_GET[‘k’]);
        // buat kueri dasar dan string kata
        $query_string = “SELECT * FROM search_engine WHERE”;
        $display_words = “”;
        // pisahkan setiap kata kunci
        $kata kunci = meledak(' ', $k);
        foreach($kata kunci sebagai $kata){
        $query_string. = ”(kata kunci SEPERTI '%”. $kata. "%') ATAU ";
        $display_words. = $kata. ” ORDER BY ‘urutkan’ “;
        }
        $query_string = substr($query_string, 0, strlen($query_string) – 3) ;

        namun ketika saya menggemakan $query_string yang saya dapatkan

        Mencari

        PILIH * DARI search_engine WHERE (kata kunci SEPERTI '%bio%') ATAU (kata kunci SEPERTI '%sal%')
        182 hasil ditemukan
        Pencarian Anda untuk bio ORDER BY 'sort' sal ORDER BY 'sort'

        Bantuan apa pun sangat dihargai

        Memuat

        • Nick berkata.

          Saya pikir saya melihat masalah Anda. Anda menambahkan perintah “ORDER” ke variabel $display_words. Bukan variabel $query_string seperti yang seharusnya. Coba ini

          $query_string = substr($query_string, 0, strlen($query_string) – 3);
          $query_string. = ” ORDER BY 'sort' DESC”;

          Dan hapus item "ORDER BY" dari variabel $display_words di dalam pernyataan if

          Memuat

          • Joe Cardamone mengatakan.

            Terima kasih Nick, saya pikir kita sudah dekat sekarang. Saya memiliki kode berikut
            $query_string = substr($query_string, 0, strlen($query_string) – 3);
            $query_string. = ” ORDER BY 'sort' DESC”;
            Namun pada baris kedua, saya memiliki "Syntax error, T_STRING tak terduga"
            Ada ide?

            Memuat

  11. Joe Cardamone mengatakan.

    Nick, tambah spasi setelah =
    $query_string. = ” ORDER BY 'sort' DESC”;
    Sekarang semuanya baik-baik saja. Terima kasih atas bantuan Anda. Sangat dihargai

    Memuat

    • Nick berkata.

      Ya sobat. Saya tahu kami akan sampai di sana

      Memuat

  12. Godwin .

    Terima kasih, Nick

    Memuat

  13. Kayla berkata.

    Halo Nick,
    Terima kasih untuk tutorial yang luar biasa ini dan berhasil dengan baik
    Saya menggunakannya untuk mencari beberapa konten tabel berita saya di database saya
    Saya juga ingin mencari judul bukan hanya isinya
    Saya punya ini untuk saat ini
    $query_string = “PILIH * DARI berita MANA”;
    $display_words = “”;

    // pisahkan setiap kata kunci
    $isi = meledak(' ', $k);
    foreach($konten sebagai $kata){
    $query_string. = ” konten LIKE ‘%”. $kata. "%' ATAU ";
    $display_words. = $kata. ” “;
    }
    Dalam berita tabel saya, saya memiliki , id, judul, konten, dan tanggal dan saya ingin agar mesin pencari berfungsi untuk kata dalam judul dan konten berita saya. Bisakah Anda membantu saya untuk itu?

    Memuat

    • Nick berkata.

      Senang Anda menyukai tutorialnya. Anda sebenarnya dapat melakukannya dengan sangat mudah. Di “$query_string. = …. ” di dalam for foreach loop, Anda bisa menambahkan bidang basis data lain yang ingin dicari kuerinya
      $query_string. = ” konten LIKE ‘%”. $kata. ”%’ ATAU judul SEPERTI ‘%”. $kata. "%' ATAU ";
      Itu akan menyelesaikan pekerjaan untuk Anda. Jika Anda ingin membuatnya jadi 'konten' dan 'judul' keduanya memiliki kata di dalamnya (dan hanya mengembalikan hasil itu) maka Anda dapat membungkus istilah pencarian di dalam tanda kurung dan kemudian mengubah 'ATAU' tengah menjadi '
      Seperti ini
      $query_string. = ”(konten LIKE ‘%”. $kata. ”%’ DAN judul SEPERTI ‘%”. $kata. "%') ATAU ";
      Perhatikan lokasi spesifik dari tanda kurung. Tanda kurung tutup harus sebelum 'ATAU' terakhir atau kueri tidak akan mencari dengan benar
      Semoga ini membantu 🙂

      Memuat

      • Kayla berkata.

        Terima kasih, Nick
        kamu yang terbaik

        Memuat

  14. MichelZeub .

    Hai formulir untuk menambahkan entri baru ke basis data mesin telusur tidak berfungsi

    Memuat

    • Nick berkata.

      Apakah Anda mengetiknya sendiri atau menggunakan unduhan kode?

      Memuat

  15. Schiano Francesco mengatakan.

    Selamat, tutorial yang bagus, saya mencari di internet selama berhari-hari tanpa pernah menemukan mesin yang tidak mematikan server dan mencapai batas memori, milik Anda berfungsi dengan baik. Sayangnya saya memiliki ribuan catatan dan ketika pencarian menemukan ratusan dan ratusan hasil itu mencantumkan semuanya, bagaimana paginasi 10 hasil per halaman dapat diadaptasi? . Terima kasih

    Memuat

  16. hanelyp .

    Contoh yang bagus tentang bagaimana TIDAK memprogram mesin pencari

    Anda menggunakan mysqli. PDO yang lebih baru lebih disukai. Jika Anda harus menggunakan antarmuka yang lebih lama, setidaknya lolos dari parameter kueri dengan benar untuk mencegah serangan injeksi SQL

    $query_string. = ” konten LIKE ‘%”. $kata. "%' ATAU ";
    Kueri yang dibuat di atas akan memerlukan pemindaian tabel, alias SLOW. Tidak ada cara untuk mengindeks mySQL (atau setahu saya database umum apa pun) untuk menghindarinya. Ini akan berfungsi untuk database kecil dengan beban ringan, tetapi gagal dengan cepat saat database bertambah

    Memuat

    • Nick berkata.

      Anda mengatakan banyak hal yang benar di sini

      Artikel ini awalnya ditulis sekitar 5 tahun yang lalu untuk menunjukkan ide dasar pembuatan mesin pencari. Jadi ya itu menggunakan MySQLi (aslinya ditulis menggunakan fungsi MySQL yang lebih tua. ) Saya benar-benar perlu memperbaruinya untuk pdo, hanya belum punya waktu

      Seperti yang saya nyatakan di artikel, ini sama sekali tidak menangani keamanan dan tidak boleh digunakan dalam sistem produksi

      Di atas perintah LIKE mencari seluruh database, Memang benar Anda tidak dapat mengindeks pada perintah LIKE. Penggunaan yang lebih baik akan menggunakan MATCH

      Bagaimana cara menulis permintaan pencarian di PHP?

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

      Bagaimana cara menggunakan fungsi pencarian di PHP?

      Array_search() adalah fungsi bawaan di PHP yang digunakan untuk mencari nilai tertentu dalam array, dan jika nilai ditemukan maka mengembalikan kunci yang sesuai< . Jika ada lebih dari satu nilai maka kunci dari nilai pertama yang cocok akan dikembalikan. . If there are more than one values then the key of the first matching value will be returned.

      Bagaimana cara mencari beberapa kata kunci di PHP?

      $queried = mysql_real_escape_string($_POST['query']); . = "ATAU nama SEPERTI '%$k%'"; . Selalu keluar dari input pengguna sebelum menggunakannya dalam kueri Anda

      Bagaimana cara menyorot teks pencarian di PHP?

      Fungsi highlight_string() menampilkan string dengan sintaks PHP yang disorot . String disorot dengan menggunakan tag HTML. Warna yang digunakan untuk penyorotan sintaks dapat diatur di php. ini atau dengan fungsi ini_set().