Cara Membuat Fitur Pencarian dengan PHP dan MySQL

Cipeget.com
21:43 WIB
Cara Membuat Fitur Pencarian dengan PHP dan MySQL
Fitur Pencarian dengan PHP dan MySQL
Download
Sebelum memulai download sourcenya dulu:

Mengembangkan sebuah situs Web yang kuat, interaktif dan menarik melibatkan banyak jalan yang berbeda, seperti interaktif pop-out menu dengan menggunakan dynamic JavaScript, Cascading Style Sheets (CSS), peta kompleks yang memungkinkan pengunjung untuk rollover masing-masing bagian untuk informasi rinci, bentuk dirancang dan diformat dengan CSS dan diprogram untuk mengumpulkan dan mengirim umpan pengunjung ke penerima tertentu. 

Pada artikel ini, kita akan belajar cara membuat fitur bentuk cari dimana mengambil query tabel database dan menampilkan informasi anggota staf saat ini. Selama analisis Anda akan belajar bagaimana untuk melakukan hal berikut: membuat tabel database yang akan mengadakan listing staf saat ini, membuat form pencarian dan menggunakan PHP, dalam koordinasi dengan Structured Query Language (SQL) untuk menangkap informasi yang dimasukkan oleh pengunjung dan menambahkan informasi untuk menampilkan hasil yang kita inginkan untuk ditampilkan. Selain itu, Anda akan belajar tentang pola desain dengan bentuk dicari termasuk keamanan melalui kode untuk memastikan bahwa hanya masukan tertentu yang dimasukkan sebelum melakukan operasi pada tabel database dan cara untuk menyampaikan informasi negara melalui address bar untuk menampilkan informasi tambahan tentang anggota staf.

Apa yang dibutuhkan


Untuk menyelesaikan artikel ini, Anda akan memerlukan alat dan teknologi berikut:

  • Satu My database SQL
  • PHP mendukung
  • Text editor

Membuat database


Jika Anda tidak yakin bagaimana untuk membuat database melalui host Anda, hubungi administrator sistem Anda untuk informasi lebih lanjut. Setelah membuat database, Anda akan membutuhkan suatu cara untuk menghubungkan untuk itu, membuat tabel, dan memasukkan data untuk entitas yang sesuai. Salah satu alat administrasi database populer untuk My SQL adalah PHP My Admin

Struktur tabel:

Column Name Data Type Length Null or Not Null Primary key? Auto Increment
ID INT 1 Not Null Yes Yes
FirstName Varchar 50 Not Null No No
LastName Varchar 50 Not Null No No
Email Varchar 50 Not Null No No
PhoneNumber Varchar 15 Not Null No No

 Lalu input data seperti tabel berikut:

Column ID FirstName LastName Email PhoneNumber
2 Ryan Butler ryanbutler@domain.com 417-854-8547
3 Brent Callahan brentcallahan@domain.com 417-854-6587

Membuat Form

Copy paste code berikut untuk membuat form.

<!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta  http-equiv="Content-Type" content="text/html;  charset=iso-8859-1">
    <title>Search  Contacts</title>
  </head>
  <p><body>
    <h3>Search  Contacts Details</h3>
    <p>You  may search either by first or last name</p>
    <form  method="post" action="search.php?go"  id="searchform">
      <input  type="text" name="name">
      <input  type="submit" name="submit" value="Search">
    </form>
  </body>
</html>
</p>

Memahami bagaimana fungsi pencarian awal akan bekerja. Ketika pengunjung memasuki nama pertama atau terakhir dan kemudian menekan tombol submit, form akan mengirim kembali ke dirinya sendiri dan menambahkan string query "pergi" di akhir. Pada titik ini, kita akan memeriksa address bar untuk query string dari pergi dan jika ada, perintah akan melakukan logika pemrograman tambahan untuk membuat anggota staf yang berhubungan muncul. Sebelum kita melakukan operasi database atau informasi yang ditampilkan kembali kepada pengunjung, kita perlu memverifikasi tiga hal: (1) Apakah formulir dikirimkan, (2) Apakah string mengandung nilai pergi, dan (3) Apakah pencarian kriteria dimasukkan hanya berisi huruf besar atau huruf kecil? Jika tidak ada yang benar, maka tidak ada operasi yang diperlukan. Pertama, mari kita tambahkan blok kode PHP tepat di bawah <form /> tag:

</form>
<?php
//do  something here in code
?>
</body>
</html>

Setiap kode PHP dalam area <php code ?>akan dieksekusi oleh server. selanjutnya, kita periksa untuk melihat apakah formulir telah dikirim:

<?php
  if(isset($_POST['submit'])){
  //do  something here in code
  }
  else{
  echo  "<p>Please enter a search query</p>";
  }
?>

Disini kami menggunakan fungsi isset, yang merupakan cek Boolean dan lewat dalam superglobal nilai _POST yang di kirimkan. Nilai Boolean dalam pemrograman adalah nilai benar/ salah. Oleh karena itu, jika fungsi mengembalikan nilai true, maka formulir telah berhasil dan kita perlu melakukan logika pemrograman tambahan. Jika fungsi mengembalikan false, kita menampilkan pesan kesalahan. Jika Anda belum menyimpan file Anda, sekarang simpan dengan nama (search_submit.php).

Selanjutnya, kita perlu memeriksa apakah string memiliki nilai go, yang dicapai dengan menggunakan kode ini:

<?php
  if(isset($_POST['submit'])){
  if(isset($_GET['go'])){
  else{
  echo  "<p>Please enter a search query</p>";
  }
  }
  }
?>

simpan file dengan nama (search_go.php).

Finally, kita perlu memastikan bahwa pengunjung hanya diperbolehkan untuk memasukkan modal atau huruf kecil sebagai karakter pertama dalam bidang pencarian. Mengapa hal ini dilakukan dijelaskan di bagian injeksi SQL pada akhir artikel. Kami juga membutuhkan suatu cara untuk mengumpulkan kriteria pencarian dimasukkan oleh pengunjung. Cara terbaik untuk memeriksa masukan pengunjung, dan benar-benar satu-satunya cara, adalah melalui ekspresi reguler, yang ditunjukkan di bawah ini:

<?php
  if(isset($_POST['submit'])){
  if(isset($_GET['go'])){
  if(preg_match("^/[A-Za-z]+/", $_POST['name'])){
   $name=$_POST['name'];
  }
  }
  else{
  echo  "<p>Please enter a search query</p>";
  }
}?>

selanjutnya:

Connect, Select, Query dan mengambil hasil pencarian dari Database


Untuk mengembalikan hasil dari tabel database , kita harus terlebih dahulu terhubung ke server database dan buatkan file baru menggunakan kode berikut:

<?php
  if(isset($_POST['submit'])){
  if(isset($_GET['go'])){
  if(preg_match("/[A-Z  | a-z]+/", $_POST['name'])){
  $name=$_POST['name'];
  //connect  to the database
  $db=mysql_connect ("servername",  "<username>", "<password>") or die ('I cannot connect  to the database because: ' . mysql_error());
  else{
  echo  "<p>Please enter a search query</p>";
  }
  }
}?>

Simpan dengan nama ( search_connectdb.php ).

Selanjutnya, kita pilih database yang digunakan dengan menggunakan kode tadi lihat di code berikut:

<?php
  if(isset($_POST['submit'])){
  if(isset($_GET['go'])){
  if(preg_match("/[A-Z  | a-z]+/", $_POST['name'])){
  $name=$_POST['name'];
  //connect  to the database
  $db=mysql_connect  ("servername", "username",  "password") or die ('I cannot connect to the database  because: ' . mysql_error());
  //-select  the database to use
  $mydb=mysql_select_db("yourDatabase");
  }
  else{
  echo  "<p>Please enter a search query</p>";
  }
  }
  }
?>

Kami membuat sebuah variabel yang disebut db dan menetapkan ke Mysql built-in fungsi, mysql_select_db di dalam nama database kami buat sebelumnya. Selanjutnya, kita query tabel database menggunakan SQL, bersama dengan variabel nama, yang berisi kriteria pencarian dimasukkan oleh pengunjung:

ketikan code berikut dan simpan dengan nama (search_query.php)

<?php
  if(isset($_POST['submit'])){
  if(isset($_GET['go'])){
  if(preg_match("/[A-Z  | a-z]+/", $_POST['name'])){
  $name=$_POST['name'];
  //connect  to the database
  $db=mysql_connect  ("servername", "username",  "password") or die ('I cannot connect to the database  because: ' . mysql_error());
  //-select  the database to use
  $mydb=mysql_select_db("yourDatabase");
  //-query  the database table
  $sql="SELECT ID, FirstName, LastName FROM Contacts WHERE  FirstName LIKE '%" . $name . "%' OR LastName LIKE '%" . $name  ."%'";
  }
  else{
  echo  "<p>Please enter a search query</p>";
  }
  }
  }
?>

Selanjutnya, kita perlu untuk menyimpan hasil query SQL kita dalam variabel dan menjalankannya terhadap fungsi mysql_query seperti yang digambarkan di bawah ini:

<?php
if(isset($_POST['submit'])){
if(isset($_GET['go'])){
if(preg_match("/[A-Z  | a-z]+/", $_POST['name'])){
$name=$_POST['name'];
//connect  to the database
$db=mysql_connect  ("servername", "username",  "password") or die ('I cannot connect to the database  because: ' . mysql_error()); 
//-select  the database to use
$mydb=mysql_select_db("yourDatabase");
//-query  the database table
$sql="SELECT  ID, FirstName, LastName FROM Contacts WHERE FirstName LIKE '%" . $name .  "%' OR LastName LIKE '%" . $name ."%'";
//-run  the query against the mysql query function
$result=mysql_query($sql);
}
else{
echo  "<p>Please enter a search query</p>";
}
}
}
?>

Seperti yang Anda lihat, kita membuat sebuah variabel yang disebut hasil, dan menetapkan ke fungsi mysql_query, lewat di variabel query. Sekarang query kita disimpan dalam variabel hasil. Untuk menampilkan hasil yang ditetapkan di PHP, kita akan membuat satu lingkaran dan kemudian mengurai keluar nama pertama dan terakhir menggunakan daftar unordered seperti yang ditunjukkan di bawah ini:

ketikan code berikut dan simpan dengan nama (search_display.php)

<?php
  if(isset($_POST['submit'])){
  if(isset($_GET['go'])){
  if(preg_match("/^[  a-zA-Z]+/", $_POST['name'])){
  $name=$_POST['name'];
  //connect  to the database
  $db=mysql_connect  ("servername", "username",  "password") or die ('I cannot connect to the database  because: ' . mysql_error());
  //-select  the database to use
  $mydb=mysql_select_db("yourDatabase");
  //-query  the database table
  $sql="SELECT  ID, FirstName, LastName FROM Contacts WHERE FirstName LIKE '%" . $name .  "%' OR LastName LIKE '%" . $name ."%'";
  //-run  the query against the mysql query function
  $result=mysql_query($sql);
  //-create  while loop and loop through result set
  while($row=mysql_fetch_array($result)){
          $FirstName  =$row['FirstName'];
          $LastName=$row['LastName'];
          $ID=$row['ID'];
  //-display the result of the array
  echo "<ul>\n";
  echo "<li>" . "<a  href=\"search.php?id=$ID\">"   .$FirstName . " " . $LastName .  "</a></li>\n";
  echo "</ul>";
  }
  }
  else{
  echo  "<p>Please enter a search query</p>";
  }
  }
  }
?>

Untuk design tampilan dapat disesuaikan.

Demikian semoga bermanfaan trims

untuk samplenya bisa di download dibawah ini:

Download