Tulisan ini diambil dari blog salah satu lamaku yang telah lama off, bermain-main dengan php yaitu studi kasus untuk parsing terhadap string. Untuk ketentuannya seperti dibawah ini:
1. Buat script PHP untuk menerima input dari user dengan format:
NAMA[spasi]USIA[spasi]KOTA
Contoh: CUT MINI 28 BANDA ACEH
2. Setelah di-submit, script tsb melakukan parsing terhadap string yg
di-input untuk memperoleh tiga data, yaitu: Nama, Usia, dan Kota.
3. Ketiga data tsb dimasukkan ke suatu table dengan field:
- ID (auto increment)
- NAME
- AGE
- CITY
Ada beberapa hal yg harus diperhatikan:
1. Script harus bisa meng-handle data Nama dan Kota yang terdiri dari
banyak kata (tidak ada batasan). Data Nama dan Kota dimasukkan ke table
dalam format upper case.
2. Untuk data Usia, script harus harus bisa meng-handle common mistakes
yg biasa dilakukan user, yaitu dengan menambahkan kata TAHUN, THN, dan
TH di belakang usianya. Misal:
- 28 TAHUN, 28 THN, 28 TH
- 28TAHUN, 28THN, 28TH
Pastikan script mampu meng-handle kata TAHUN, THN, dan TH secara
case-insensitive.
jawab :
buat db dulu file dumb nya spt berikut :
# phpMyAdmin MySQL-Dump
# version 2.2.3
# http://phpwizard.net/phpMyAdmin/
# http://phpmyadmin.sourceforge.net/ (download page)
#
# Host: localhost
# Generation Time: Aug 05, 2006 at 01:02 AM
# Server version: 3.23.47
# PHP Version: 4.1.1
# Database : `data`
# ——————————————————–#
# Table structure for table `user`
#CREATE TABLE user (
id int(4) NOT NULL auto_increment,
name text NOT NULL,
age int(2) NOT NULL default ‘0′,
city text NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY id (id)
) TYPE=MyISAM;
trus source code nya kayak berikut [gak tau betul apa gak ini ya]
?
echo “Masukkan nama,usia, dan kota dengan format sebagai berikut :”;
echo “<b>nama[spasi]<b>usia</b>[spasi]<b>kota</b>”;
echo “<form name=”\” method=”\” action=”\” kirim=”ok\”>”;
echo “<input name=”\” size=”\” type=”\”>”;
echo “<input name=”\” value=”\” type=”\”>”;
echo “</form>”;if($kirim==”ok”) {
$buka=mysql_connect(”localhost”,”",”");
mysql_select_db(”data”);
$qry=”INSERT into user (name,age,city) values (”;
$temp=array();
$stringnya=stripslashes($kalimat);
if(eregi(”tahun|thn|th”,$stringnya)) {
$stringnya=eregi_replace(”tahun”,”",$stringnya);
$stringnya=eregi_replace(”thn”,”",$stringnya);
$stringnya=eregi_replace(”th”,”",$stringnya);
}
$stringnya=str_replace(”`”,”",$stringnya);
$pecah=explode(” “,$stringnya);
$jum=count($pecah);
for ($x=0;$x<$jum;$x++) {
$temp[$x]=$pecah[$x];
if(is_numeric($temp[$x])) {
$posisi_numeric=$x;
} }
for ($y=0;$y<$jum;$y++) {
$temp[$y]=$pecah[$y];
if(is_numeric($temp[$y])) {
$usia=$temp[$y];
$qry=$qry.”,”.trim($usia).”,”;
} elseif($y>$posisi_numeric) {
if(empty($temp[$y]) || $temp[$y]==” “) {
} else {
$kota=strtoupper($temp[$y]);
$qry=$qry.”‘”.trim($kota).”‘”;
}
} else {
if(empty($temp[$y]) || $temp[$y]==” “) {
} else {
$nama=strtoupper($temp[$y]);
$qry=$qry.”‘”.trim($nama).”‘”;
}
}}
$qry=str_replace(”””,” “,$qry);
$qry=$qry.”)”;
$eksekusi=mysql_query($qry);
if($eksekusi) {
echo “OK!Data berhasil dimasukkan ke Database
terima kasih”;
} else {
echo “failed! data yang anda inputkan tidak sesuai dengan format”;
}mysql_close($buka);
}
sekian..


