Notes For My Knowledge

Private Trainer, Web , Mobile & Desktop Programmer


Fahmi Basya Kartapura On March - 30 - 2011

Diketahui:

Saya akan membuat form reservasi hotel seperti terlihat dibawah ini:

RESERVATION FORM
Name
Check In
Check Out
Room Type
Bed Type
Adult
Children
Preference

Saya mempunyai tiga tabel, yaitu:

  • tabel reservation
  • tabel bed
  • tabel tipe_kamar

Tabel reservation

Tabel ini terdiri dari kolom:

  • id_reservation INTEGER AUTO_INCREMENT PRIMARY_KEY
  • name VARCHAR(40)
  • check_in DATE
  • check_out DATE
  • id_tipe TINYINT
  • id_bed TINYINT
  • adult TINYINT
  • children TINYINT
  • preference ENUM(‘Smoking’, ‘Non Smoking’);

Tabel bed

Tabel ini terdiri dari kolom:

  • id_bed TINYINT AUTO_INCREMENT PRIMARY_KEY
  • bed_name VARCHAR(30)

Tabel tipe_kamar

Tabel ini terdiri dari kolom:

  • id_tipe TINYINT AUTO_INCREMENT PRIMARY_KEY
  • tipe_kamar VARCHAR(30)
  • price INTEGER

Relasi dari Tabel


Pengisian Tabel Master

Isilah tabel Bed seperti berikut ini:

id_bed bed_name
1 1 Single Bed
2 2 Single Bed
3 1 Double Bed
4 3 Single Bed

Isilah tabel tipe_kamar seperti berikut ini:

id_tipe tipe_kamar price
1 Superior Room 800000
2 Deluxe Room 1000000
3 Junior Suite 1200000
4 Executive Suite 1400000
5 Deluxe Royal Room 1100000
6 Junior Suite Royal 2100000
7 Executive Suite Royal 2500000
8 Diplomatic Suite 3750000
9 Presidential Suite 5000000

Contoh Kasus:

Saya ingin membuat Form Reservasi dengan ketentuan:

  • Room Type datanya mengambil dari tabel tipe_kamar
  • Bed Type datanya mengambil dari tabel bed
  • Setelah User menekan tombol Confirm Reservation maka akan tampil tulisan pada halaman web tentang pesanan yang telah dilakukan.
  • Simpan datanya ke tabel reservation.

Membuat Form Reservasi

Buatlah satu file PHP bernama reservasi.php dengan isi seperti dibawah ini:

<form name=”form_reservasi” method=”post” action=“confirmation.php”>

<table border=”1″ cellspacing=”2″ cellpadding=”2″ align=”center”>

<caption>RESERVATION FORM</caption>

<tbody>

<tr>

<td>Name</td>

<td width=”330″><input maxlength=”45″ name=”name” size=”40″ type=”text” /></td>
</tr>
<tr>
<td>Check In</td>
<td>
<select  name=”ci_year“>
<option value=”2011″>2011</option>
<option value=”2012″>2012</option>
</select>
<select  name=”ci_month“>

<option value=”1″>January</option>
<option value=”2″>February</option>
<option value=”3″>March</option>
<option value=”4″>April</option>
<option value=”5″>may</option>
<option value=”6″>June</option>
<option value=”7″>July</option>
<option value=”8″>August</option>
<option value=”9″>September</option>
<option value=”10″>October</option>
<option value=”11″>November</option>
<option value=”12″>December</option>
</select>
<select name=”ci_date“>
<option value=”1″>1</option>
<option value=”2″>2</option>
<option value=”3″>3</option>
<option value=”4″>4</option>
<option value=”5″>5</option>
<option value=”6″>6</option>
<option value=”7″>7</option>
<option value=”8″>8</option>
<option value=”9″>9</option>
<option  value=”10″>10</option>
<option value=”11″>11</option>

<option value=”12″>12</option>
<option value=”13″>13</option>

<option value=”14″>14</option>
<option value=”15″>15</option>

<option value=”16″>16</option>
<option value=”17″>17</option>

<option value=”18″>18</option>
<option value=”19″>19</option>

<option value=”20″>20</option>
<option value=”21″>21</option>

<option value=”22″>22</option>
<option value=”23″>23</option>

<option value=”24″>24</option>
<option value=”25″>25</option>

<option value=”26″>26</option>
<option value=”27″>27</option>

<option value=”28″>28</option>
<option value=”29″>29</option>

<option value=”30″>30</option>
<option value=”31″>31</option>
</select></td>
</tr>
<tr>
<td>Check Out</td>
<td>
<select name=”co_year“>
<option value=”2011″>2011</option>
<option value=”2012″>2012</option>
</select>
<select  name=”co_month“>
<option value=”1″>January</option>
<option value=”2″>February</option>
<option value=”3″>March</option>
<option  value=”4″>April</option>
<option value=”5″>may</option>
<option value=”6″>June</option>
<option value=”7″>July</option>
<option value=”8″>August</option>
<option value=”9″>September</option>
<option value=”10″>October</option>
<option value=”11″>November</option>
<option value=”12″>December</option>
</select>
<select  name=”co_date“>
<option value=”1″>1</option>
<option value=”2″>2</option>
<option value=”3″>3</option>
<option value=”4″>4</option>
<option value=”5″>5</option>
<option value=”6″>6</option>
<option value=”7″>7</option>
<option value=”8″>8</option>
<option value=”9″>9</option>
<option value=”10″>10</option>
<option value=”11″>11</option>
<option value=”12″>12</option>
<option value=”13″>13</option>
<option value=”14″>14</option>
<option value=”15″>15</option>
<option value=”16″>16</option>
<option value=”17″>17</option>
<option value=”18″>18</option>
<option value=”19″>19</option>
<option value=”20″>20</option>
<option value=”21″>21</option>
<option value=”22″>22</option>
<option value=”23″>23</option>
<option value=”24″>24</option>
<option value=”25″>25</option>
<option value=”26″>26</option>
<option value=”27″>27</option>
<option value=”28″>28</option>
<option value=”29″>29</option>
<option value=”30″>30</option>
<option value=”31″>31</option>
</select>
</td>
</tr>
<tr>
<td>Room Type</td>
<td>
<select name=”room_type“>

<?php

$host=’localhost’;

$user=’fahmibasya’;

$password=’kartapura’;

$database=’hotel’;

$koneksi=mysql_connect($host, $user, $password);

mysql_select_db($database);

$sql=”SELECT id_tipe, tipe_kamar FROM tipe_kamar”;

$hasil_query=mysql_query($sql);

while($baris=mysql_fetch_row($hasil_query))

{

echo “<option value=’$baris[0]‘>$baris[1]</option>”;

}

?>
</select>
</td>
</tr>
<tr>
<td>Bed Type</td>
<td>
<select name=”bed_type“>
<?php

$sql=”SELECT id_bed, bed_name FROM bed”;

$hasil_query=mysql_query($sql);

while($baris=mysql_fetch_row($hasil_query))

{

echo “<option value=’$baris[0]‘>$baris[1]</option>”;

}

?></select>
</td>
</tr>
<tr>
<td>Adult</td>
<td>
<select name=”adult“>
<option value=”1″>1</option>
<option value=”2″>2</option>
</select>
</td>
</tr>
<tr>
<td>Children</td>
<td>
<select name=”children“>
<option value=”1″>1</option>
<option value=”2″>2</option>
<option value=”3″>3</option>
<option value=”4″>4</option>
</select>
</td>
</tr>
<tr>
<td>Preference</td>
<td>
<select name=”preference“>
<option value=”Smoking”>Smoking</option>
<option selected=”selected” value=”Non Smoking”>Non Smoking</option>
</select>
</td>
</tr>
<tr>
<td colspan=”2″ align=”center”>
<input  name=”reserve” type=”submit” value=”Confirm Reservation” />
<input name=”reset” type=”reset” value=”Reset” /></td>
</tr>
</tbody>
</table>
</form>

Keterangan:

  • <form name=”form_reservasi” method=”post” action=“confirmation.php”>, kode ini berarti kita membuat form bernama “form_reservasi” menggunakan metode “post” dan mengirimkan datanya ke file “confirmation.php”
  • mysql_connect($host, $user, $password), kode ini berarti kita melakukan koneksi dari PHP ke Server MySQL untuk lebih jelasnya kamu bisa membaca artikelnya disini.
  • mysql_select_db($database), kode ini berarti saya memilih database dari nilai variabel $database yaitu database hotel, untuk penjelasan lebih detail tentang fungsi mysql_select_db() silahkan lihat artikelnya disini.
  • mysql_query($sql), kode ini digunakan untuk mengirimkan query dari nilai variabel $sql  ke Server MySQL, untuk lebih jelasnya mengenai fungsi mysql_query() silahkan baca artikelnya disini.
  • mysql_fetch_row($hasil_query), kode ini berarti kita merubah isi dari variabel $hasil_query menjadi array_numerik, untuk lebih jelasnya mengenai fungsi mysql_fetch_row() silahkan baca artikelnya disini.

Membuat File Penerima Data

Lihat pada kode dibawah ini:

<form name=”form_reservasi” method=”post” action=”confirmation.php”>

Attribut actionnya adalah “confirmation.php” dimana attribut action ini menentukan file tujuan data dari form reservasi dikirim yaitu file “confirmation.php”.

Pembuat File confirmation.php

Buatlah satu file PHP bernama confirmation.php dan masukkan kode seperti dibawah ini:

<?php

$name=$_POST['name'];

$check_in_db=$_POST['ci_year']. ‘-’ .$_POST['ci_month']. ‘-’. $_POST['ci_date'];

$check_out_db=$_POST['co_year']. ‘-’ .$_POST['co_month']. ‘-’. $_POST['co_date'];

$check_in=$_POST['ci_date']. ‘-’ .$_POST['ci_month']. ‘-’. $_POST['ci_year'];

$check_out=$_POST['co_date']. ‘-’ .$_POST['co_month']. ‘-’. $_POST['co_year'];

$room_type=$_POST['room_type'];

$bed_type=$_POST['bed_type'];

$adult=$_POST['adult'];

$children=$_POST['children'];

$preference=$_POST['preference'];

$sql=”INSERT INTO reservation (name, check_in, check_out, id_tipe, id_bed, adult, children, preference) VALUES (‘$name’, ‘$check_in_db’, ‘$check_out_db’, ‘$room_type’, ‘$bed_type’, ‘$adult’, ‘$children’, ‘$preference’)”;

$hasil_query=mysql_query($sql);

if(mysql_affected_rows()>0){

echo  “<h2>Reservation Completed</h2>”;

echo  “<br />”;

echo  “Thank you for your reservation,  <b> $name </b> <br />”;

echo  “Check in date <b>$check_in</b> <br />”;

echo  “Chek out date <b>$check_out</b> <br />”;

echo “Room preference <b>$preference</b> <br />”;

echo “Number of Adult <b>$adult</b> <br />”;

echo “Number of Child <b>$children</b> <br />”;

}else{

echo “Error !!! Reservation Failed: ” . mysql_error();

}

?>

Keterangan:

  • $_POST['name'], $_POST berarti saya mengambil nilai yang dikirim melalui metode “post”, sedangkan ['name'] adalah nilai dari attribut name pada elemen form yaitu elemen <input maxlength=”45″ name=”name” size=”40″ type=”text” />
  • mysql_affected_rows(), kode ini digunakan untuk mengambil jumlah baris yang dihasilkan dari query insert, untuk lebih jelas mengenai fungsi mysql_affected_rows() maka kamu bisa membacanya disini.

Jika tutorial ini bermanfaat silahkan katakan ‘Terima Kasih Fahmi Basya Kartapura’.





Categories: PHP & MySQL

5 Responses

  1. Suhandy says:

    Terimakasih Fahmi Basya Kartapura
    Maju terus, Gan……………
    :) :) :)

  2. HALLEY says:

    wah suhandy tugase dah jadi jjh … langsung di aplot… hehe…

    mas Fahmi ane mau tanyaney setelah ane baca script diatas. kenapa textfield dari value “name” ngak ada keterangan koneksi mysql na. trim’s

  3. Priyo says:

    gan error handlingnya kok gak ada ??? gimana kalo seumpama kamar yang dipesan pada tanggal tertentu telah dibooking ??? aku baca sepintas itu cuma proses insert aja so belum bisa dikatakan reservasi hotel.

  4. Fahmi Basya Kartapura says:

    Iya memang hanya proses insert aja

  5. Faiz says:

    Terima Kasih Fahmi Basya Kartapura

    Nicw sHARE…

    Gw coba dulu ya….

    Kalo bisa upload source code sekalian dong….

Copy Protected by Chetans WP-Copyprotect.