Cara mencari data yg mirip

Bagaimana cara mencari data yg mirip di PHP mysql ,

Misal punya sebuah data berisi "Ini Adalah Pertanyaan"

Bagaimana Agar Ketika Kita Cari

"Ini Pertanyaan" Akan Muncul Data Tsb

avatar Chin
@Chin

63 Kontribusi 13 Poin

Diperbarui 3 tahun yang lalu

2 Jawaban:

<div>Ini lebih ke mysql. Saya coba bantu. Berikut script mysql nya:</div><pre>SELECT * FROM [nama tabel] WHERE [nama kolom yang dicari] LIKE "%ini%pertanyaan%"</pre><div>Kode di atas urutan katanya berpengaruh.<br>Untuk kalimat "Ini adalah pertanyaan" akan muncul, namun untuk kalimat "Pertanyaan berikut ini" tidak akan muncul.<br>Kalau mau data muncul semua (yang penting ada kata ini dan pertanyaan), maka scriptnya bisa diubah dikit.</div><pre>SELECT * FROM [nama tabel] WHERE [nama kolom] LIKE "%pertanyaan%" AND [nama kolom] LIKE "%ini%"</pre><div><br>Misal di database ada data :<br>Ini Adalah Pertanyaan&nbsp; --&gt; bener<br>Ini Adalah Pertamyaan&nbsp; --&gt; typo<br>Dan kita ingin melihat juga data yg typo dengan kata pencari "Ini Pertanyaan"</div><pre>$submit = "Ini Perta_yaan"; $arr_sub = explode(" ", $submit); $cari = ""; foreach ($arr_sub as &amp;$value) { $cari = $cari."%".$value; }

$query = "SELECT * FROM ".$tabel." WHERE ".$kolom. " LIKE '".$cari."%'";</pre><div>Kode di atas tanpa union, tapi menurut saya cukup efektif dan lebih simpel. Hanya saja kalo tanpa union, seandainya data banyak dan kalimatnya panjang, tidak ketahuan yang typo atau nggak.<br><br>Kunjungi juga <a href="https://warkop-it.000webhostapp.com">https://warkop-it.000webhostapp.com</a></div>

avatar ChronoJava
@ChronoJava

41 Kontribusi 23 Poin

Dipost 3 tahun yang lalu

Tanggapan

Bagaimana jika "Ini Pertanyaan" nya berganti ganti sesuai yg user submit , misal "Itu Adalah Pertanyaan"

Atau misal user yg Nge submit typo jadi "Ini Adalah Pertanyaan"

  • "Ini Adalah Pertamyaan"

Kalo masalah submit itu di phpnya. Saya udah lama banget gak pake php, jadi maaf gak bisa jelasin detail. Tapi intinya dari kalimat yg disubmit perlu dipecah jadi array. Pake explode kalo gak salah. Nanti dicari sendiri cara pakenya.

Kalo untuk typo sepertinya gak ada. Cuma kalo saya ngakalinnya pake union. Jadi yg bener di atas, trus yg typo di bawah. Untuk yg typo bisa pake LIKE %perta___an%. Untuk php nya, silahkan dicari. Intinya dari kalimat jadi array. Kalo tanda _ mungkin diserahin ke user/pencari yg bisa nentuin typonya di karakter ke berapa kira-kira.

<div>Ada juga fulltextsearch di mysql<br><a href="https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html">refrensi mysql fulltextsearch</a><br><br>1. kamu harus set kolom mana di table yang akan kamu jadikan index pencarian</div><pre><strong>ALTER</strong> <strong>TABLE</strong> table_name&nbsp; <br><strong>ADD</strong> FULLTEXT(column_name1, column_name2,…)</pre><div>kalau table sudah jadi berarti pakai ALTER</div><div><br>2. cara mencarinya menggunakan MATCH AGAINST</div><pre>SELECT * FROM table_name WHERE MATCH(col1, col2) AGAINST('search terms' IN BOOLEAN MODE)</pre><div><br>ada beberapa mode: natural laguage, boolean, query expansion,<br><a href="https://www.w3resource.com/mysql/mysql-full-text-search-functions.php">baca disini</a></div>

avatar hilmanski
@hilmanski

2672 Kontribusi 2132 Poin

Dipost 3 tahun yang lalu

Login untuk ikut Jawaban