2010-09-14 5 views
-3

Voici la table dans laquelle je récupère les données de sqlite ,, en haut de cette grille de données j'ai besoin d'un bouton de filtre et 2 zones de texte. 1 pour userId et 1 pour userName ... Tout ce dont j'ai besoin est tha comme entrer l'ID utilisateur et nom d'utilisateur l'enregistrement limité à tha ID ou le nom doit apparaître ... S'il vous plaît faire newbie aide me..am à perl ...Comment filtrer les enregistrements d'une base de données SQLite dans mon script CGI Perl?

#!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

Les parties SQLite et CGI ne s'influencent pas mutuellement. Vous le feriez de la même façon, même si vous n'utilisez pas CGI. –

Répondre

1

Vous pouvez filtrer les enregistrements qui sont renvoyés en ajoutant une clause 'where' à votre instruction SQL. Vous pouvez obtenir les paramètres qui ont été tapés dans vos zones de texte en utilisant la fonction 'param' de CGI.pm.

Vous dîtes que vous voulez filtrer les résultats lorsque du texte est tapé dans les zones de texte. C'est plus difficile. Vous devez utiliser Javascript et Ajax pour le faire.

Vous semblez être un peu confus au sujet de CGI et de Perl. Vous chargez par exemple trois fois le module CGI et n'utilisez qu'une seule de ses fonctions. Je vous recommande fortement de lire quelque chose qui vous aidera à comprendre les concepts sous-jacents avant d'écrire plus de code. Ovid's CGI course est une excellente introduction.

+0

Merci beaucoup M.davorg je vais passer par le cours de cgi de l'ovide et de revenir si je suis confronté à un problème plus loin .. – sonya

Questions connexes