#! /usr/local/bin/perl -w
use strict;
use DBI();
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my ($data,@args);

$data=<>;

if($data)
{
	&get_name($data);
}
elsif($ENV{'PATH_INFO'} eq "/whole_database")
{
	$data="xname=%&sname=%";
	&get_name();
}
else
{
	&ask_question;
}
print "</BODY></HTML>";


sub ask_question
{
    &print_header("zadaj_pytanie");

    print qq(<A HREF="/cgi-bin/script2_html/whole_database">
    Kliknij tu, jeeli chcesz otrzyma peny wykaz osb zarejestrowanych w bazie danych.</A>
    <BR><FORM METHOD='POST' ACTION='/cgi-bin/script2_html/name'>
    Wpisz imi: <INPUT TYPE='TEXT' NAME='xname' SIZE=20><BR>
    i (lub) nazwisko: <INPUT TYPE='TEXT' NAME='sname' SIZE=20><BR>
    <INPUT TYPE=SUBMIT VALUE='GOTOWE'>);
}

sub print_header
{
    print qq(content-type: text/html\n\n
    <HTML><HEAD><TITLE>$_[0]</TITLE></HEAD><BODY>);
}

sub get_name
{
    my ($t,@val,$ref,$mesg,$dbm,$query,$xname,$sname,$sth,$rows);

    &print_header("pobierz_dane");
    #print "in get_name: ARGS: @args, DANE: $data<BR>";
    $xname="%";
    $sname="%";
    @args=split(/&/,$data);

    foreach $t (@args)
    {
        @val=split(/=/,$t);
        if($val[0] eq "xname")
        {
            $xname=$val[1] if($val[1]);
        }
        elsif($val[0] eq "sname")
        {
            $sname=$val[1] if($val[1]);
        }
    }


# nawizanie poczenia z baz danych
    $dbm=DBI->connect("DBI:mysql:database=people;host=localhost",'webserv')
        or die "Nie udao si nawiza poczenia z baz danych people";

# get it back
    $query=qq(select xname, sname from people where xname like ? and sname like ?);
    $sth=$dbm->prepare($query) or die "Nie udao si przygotowa zapytania: $!";
    #print "$xname, $sname: $query<BR>";

# $! to zmienna interpretera Perl, przechowujca biecy komunikat o bdzie systemowym

    $sth->execute($xname,$sname) or die "Nie udao si wykona zapytania: $dbm->errstr<BR>";
    $rows=$sth->rows;
    #print "$rows: $rows $query<BR>";

    if($sname eq "%" && $xname eq "%")
    {
        print qq(<table border=1 width=70%><caption><h3>Caa baza danych (3)</h3></caption>);
    }
    else
    {
        print qq(<table border=1 width=70%><caption><h3>Znaleziono $rows osoby o imieniu $xname $sname</h3></caption>);
    }

    print qq(<tr><align left><th>Imi</th><th>Nazwisko</th></tr>);
    while ($ref=$sth->fetchrow_hashref)
    {
        print qq(<tr align right><td>$ref->{'xname'}</td><td> $ref->{'sname'}</td></tr>);
    }
    print "</table></BODY></HTML>";
    $sth->finish;
# zamknicie poczenia z baz danych
    $dbm->disconnect;
}
