22 September 2013

OpenWrt + PHP/MySQL + Hot Potatoes = Localhost Quiz

Kali ini saya ingin berbagi pengalaman membuat Quiz dan bisa di akses melalui localhost/router. Sebelumnya saya telah terbiasa memakai Moodle untuk memberikan quiz. Tetapi Moodle tidak mungkin di install ke router saya yang kebetulan bertipe MR3020. Jadi tujuan postingan kali ini adalah solusi alternatif agar quiz tetap bisa diakses offline dan hasilnya bisa disimpan di database.

Saya anggap para pembaca sekalian sudah bisa menginstall php dan mysql server di router berbasis OpenWrt. Langkah selanjutnya adalah mendowload quizmaker berjudul Hot Potatoes di http://hotpot.uvic.ca/ . Program ini cukup sederhana dan mudah di operasikan. 


Yang pertama kita buat terlebih dahulu adalah soal/quiz yang akan kita ujikan dengan Hot Potatoes. Dengan petunjuk di http://jalt-publications.org/tlt/departments/tlt-wired/articles/700-saving-hot-potatoes-quiz-results-database , kita bisa menyimpan hasil quiz tersebut di database MySQL.

Yang perlu di perhatikan adalah beberapa baris kode yang mesti diperbaiki. Agar tidak pusing tujuh keliling, jungkir balik dan google sana-sini seperti saya, berikut ini adalah perbaikan kodenya (diberi warna merah) agar berjalan sempurna:
---------------------------
// Connect to the local database using username root and no password.
mysql_connect ("localhost", "root", "");
// Select our database named scores.
mysql_select_db ("scores");
// insert our 5 fields into the table eng101
mysql_query ("insert into eng101
(
realname,
Exercise,
Score,
Start_Time,
End_Time
)
VALUES
(
'$_POST[realname]',
'$_POST[Exercise]',
'$_POST[Score]',
'$_POST[Start_Time]'
, '$_POST[End_Time]'
)
");
//Provide some feedback to the student.
echo ("Your answers have been saved!");
------------------------

Jikalau tidak ada kesalahan maka  melalui phpMyAdmin hasil quiz akan nampak seperti gambar diatas.
Agar lebih mudah , maka kita juga bisa menampilkan isi database melalui php dengan kode sebagai berikut:
-------------------------------------
$con=mysqli_connect("localhost","root","","scores");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM eng101 ORDER BY Score DESC");

echo "
Exercise

Name

Score

Start Time

End Time

";

while($row = mysqli_fetch_array($result))
  {
  echo " ";
  echo "
" . $row['Exercise'] . "
";
  echo "
" . $row['realname'] . "
";
  echo "
" . $row['Score'] . "
";
  echo "
" . $row['Start_Time'] . "
";
  echo "
" . $row['End_Time'] . "
";
  echo "
";
  }
echo "
";

mysqli_close($con);

---------------------------------------------------------------------------
Hasil tampilan dari kode diatas sederhananya adalah sebagai berikut:
Semua file diatas tinggal di upload ke satu folder di router yang sudah terinstall OpenWrt + PHP + MySQL. Semoga ini menjadi solusi ringkas dan ringan bagi yang lagi ingin memberikan quiz melalui router OpenWrt. Contoh file diatas bisa di download di Sample.zip . Mohon maaf tampilan kode diatas kurang sempurna melalui blogspot. Silahkan lihat kode yang lebih sempurna di Sample.zip -nya. Akhir kata selamat mencoba ! .

3 comments:

  1. nice brooo

    ReplyDelete
  2. bisa diakses/dikerjakan sampe berapa user dalam waktu bersamaan?

    ReplyDelete

Kasih Donk Komentarnya