Halo,

Reply saya ada di bawah bagian regular expression.

On Tue, Mar 16, 2004 at 07:54:03PM -0800, dudy rudianto wrote:
> Halo Linuxer, aku ada masalah nih sbb 
> gimana insert data ke mysql dari
> inputan seorang user,
> inputan itu nanti masing-masing masuk ke fieldnya.
> saya udah coba tapi gagal terus kalo inputannya dari
> user
> tapi kalo langsung ditulis di source bisa tuh.
> 
> berikut adalah source programmnya
> 
> #!/usr/bin/perl
> 
> use DBI;
> 
> sub insert {
> 
>        my($nim,$nama,$password,$ipk) = @_;
>        my($sql);
> 
>         #konfigurasi database
>         $database = "test";
>         $dbuser = "test";
>         $dbpasswd = "TesTer";
>         $dbhost = "localhost";
>         $dsn =
> "DBI:mysql:database=$database;host=$dbhost";
>         $dbh = DBI->connect($dsn,$dbuser,$dbpasswd) ||
> die $DBI::errstr;
> 
>         $sql = "insert into sms_mhs
> (nim,nama,password,ipk) values
> ('$nim','$nama','$password')";
> 
>        #$sql = "insert into sms_mhs
> (nim,nama,password,ipk) values
> ('12345678','test','12345678')";
> 
>         $dbh->do($sql) || die ($dbh->err);
>         return $dbh->{'mysql_insertid'};
> 
>         $dbh->disconnect;
> }
> print "INPUTAN : ";
> while ($isi=<>) {
>     if ($isi =~/12345678,test,12345678/){#inputan
> pakai koma sebagai pemisah

Kalo regular expressionnya seperti ini, berarti user harus memasukkan
string persis seperti itu.

Jadi string berikut harus di enter oleh user atau if bakal gagal terus:
12345678,test,12345678

Kalo yg anda maksud adalah demikian:
- bilangan 1 sampe 8 DAN cuma 8 characters
- ditengah ada 4 character alphabet
- delimiter (pemisah) pake "," 

if ($isi =~ /[1-8]{8},\[a-zA-Z]{4},[1-8]{8}/)
{
}

Ati2 pake \w, karena \w mengikutkan bilangan dan '_'.

Jadi \w = [a-zA-Z0-9_].

Untuk lebih detail bisa dilihat di "man perlre".

Salam,
Andrew...


>     #if ($isi =~/12345678 test 12345678/){#inputan
> pakai spasi sebagai pemisah
>     #if ($isi
> =~/(\d{8})(\s{1})(\w{4})(\s{1})(\w{8})(\s{1})(\w{2})/){
>     #if ($isi
> =~/(\d{8})(\s{1})(\d{4})(\s{1})(\d{8})(\s{1})(\d{2})/){
>     #if ($isi
> =~/(\d{2})(\d{2})(\d{2})(\d{2})(\s{1})(\w{4})(\s{1})(\w{8})(\s{1})(\w{2})/){
> 
>            insert();
> 
>    }else{
>     print "error";
>    }#end if
> 
>    print "\nINPUTAN : ";
> 
> }#end while
> 
> -- 
> Berhenti langganan: [EMAIL PROTECTED]
> Arsip dan info: http://linux.or.id/milis.php

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis.php

Kirim email ke