2010-09-14 17 views
-3

這裏是ia檢索從sqlite的數據表中,在這個數據網格頂部 我需要一個過濾器按鈕和2個文本框..1 userId和1爲 用戶名...我需要的全部是塔作爲輸入用戶ID和用戶名侷限於塔ID或名字應該出現在記錄 ......請你幫助me..am新手到perl ...如何在我的Perl CGI腳本中過濾來自SQLite數據庫的記錄?

#!C:\perl\bin\perl.exe 

use CGI; 
use CGI qw/:standard/; 
use CGI::Carp qw(warningsToBrowser fatalsToBrowser); 
my $q = new CGI; 
use DBI; 
use CGI qw(:all); 
use warnings; 
print $q->header (); 
my $dbh = DBI->connect(
     "dbi:SQLite:DEVICE.db", 
     "", "", 
     { 
      RaiseError => 1, 
      AutoCommit => 1 
     } 
    ); 
my @rows =(); 
my $sql = "SELECT UserId,UserName,CardNo,GroupId,Role,VerifyType FROM UsersList"; 
my $sth = $dbh->prepare($sql) or die("\n\nPREPARE ERROR:\n\n$DBI::errstr"); 
    $sth->execute or die("\n\nQUERY ERROR:\n\n$DBI::errstr"); 
print '<table>'; 
print "<tr>"; 
print "<th>$sth->{NAME}->[0]</th>"; 
print "<th>$sth->{NAME}->[1]</th>"; 
print "<th>$sth->{NAME}->[2]</th>"; 
print "<th>$sth->{NAME}->[3]</th>"; 
print "<th>$sth->{NAME}->[4]</th>"; 
print "<th>$sth->{NAME}->[5]</th>"; 
print "<th> EDIT </th>"; 
print "<th> DELETE </th>"; 

while (my @row = $sth->fetchrow_array) { 
    print " 
<tr> 
<td>$row[0]</td> 
<td>$row[1]</td> 
<td>$row[2]</td> 
<td>$row[3]</td> 
<td>$row[4]</td> 
    <td>$row[5]</td> 
    <td><A HREF=\"\">EDIT</A></td> 
    <td><A HREF=\"\">DELETE</A></td> 
    </tr>"; 
    } 
    print "<tr style='background-color:#CDC9C9;'><td><A HREF=\"http://localhost/cgi- 
    bin/AddUser.cgi\">ADD</A></td><td></td><td></td><td></td><td></td></tr>"; 
    print"</table>"; 
    $sth->finish(); 
    $dbh->commit(); 
    $dbh->disconnect; 


print <<END_HTML; 
<html> 
<head><title></title></head> 
<body> 
    <form action="UsersList.cgi" method="get"> 
<TABLE align="center"> 

    <TR> 
    <TD align="left"> 
<input type="hidden" name="submit" value="Submit"> 

</TD> 
</TR> 
    </TABLE> 

    </form> 
    </body></html> 
    END_HTML 
+1

SQLite和CGI部分不會相互影響。即使你沒有使用CGI,你也會這樣做。 – 2010-09-15 01:01:04

回答

1

可以篩選返回的記錄通過在SQL語句中添加'where'子句。您可以使用CGI.pm中的'param'函數獲取已輸入到文本框中的參數。

你說你想過濾結果作爲文本輸入到文本框中。這很難。你需要使用Javascript和Ajax來做到這一點。

您似乎對CGI和Perl有點困惑。例如,您可以將CGI模塊加載三次,然後僅使用其中一個函數。我強烈建議您在編寫更多代碼之前閱讀一些有助於理解底層概念的內容。 Ovid's CGI course是一個很好的介紹。

+0

非常感謝Mr.davorg,我會通過ovid的cgi課程,如果我再遇到任何問題,請回復。 – sonya 2010-09-14 08:53:48

相關問題