#!/usr/local/bin/perl use warnings; use 5.014; use Mojolicious::Lite; use DBI qw(:sql_types); my $db = 'adressen_db'; my $dbh = DBI->connect( "DBI:SQLite:dbname=$db", "", "", {} ); $dbh->{RaiseError} = 1; $dbh->{PrintError} = 0; $dbh->{AutoCommit} = 1; $dbh->{sqlite_unicode} = 1; $dbh->do("PRAGMA cache_size = 400000"); $dbh->do("PRAGMA synchronous = OFF"); my $table = 'adressen'; #$dbh->do( "CREATE TABLE $table ( vorname TEXT, nachname TEXT, steuernummer TEXT PRIMARY KEY, strasse, nummer INTEGER, ort TEXT, plz INTEGER )" ); get '/namen' => sub { shift->render( 'namen' ); }; get '/steuernummer' => sub { my $self = shift; my $vorname = $self->param('vorname'); my $nachname = $self->param('nachname'); my $sth = $dbh->prepare( "SELECT steuernummer FROM $table WHERE vorname == ? AND nachname == ?" ); $sth->execute( $vorname, $nachname ); my @steuernummern; while ( my $row = $sth->fetchrow_hashref ) { push @steuernummern, $row->{steuernummer}; } $self->stash( vorname => $vorname ); $self->stash( nachname => $nachname ); $self->stash( steuernummern => [ @steuernummern ] ); $self->render( 'steuernummer' ); }; get '/adresse' => sub { my $self = shift; my $steuernummer = $self->param('steuernummer'); my $vorname = $self->param('vorname'); my $nachname = $self->param('nachname'); my $sth = $dbh->prepare( "SELECT strasse, nummer, ort, plz FROM $table WHERE steuernummer == ?" ); $sth->execute( $steuernummer ); my $ref = $sth->fetchall_arrayref; $self->stash( vorname => $vorname ); $self->stash( nachname => $nachname ); $self->stash( steuernummer => $steuernummer ); $self->stash( strasse => '' ); $self->stash( nummer => '' ); $self->stash( ort => '' ); $self->stash( plz => '' ); $self->stash( exists => 0 ); if ( @$ref == 1 and @{$ref->[0]} == 4 ) { my ( $strasse, $nummer, $ort, $plz ) = @{$ref->[0]}; $self->stash( strasse => $strasse ); $self->stash( nummer => $nummer ); $self->stash( ort => $ort ); $self->stash( plz => $plz ); $self->stash( exists => 1 ); } $self->render( 'adresse' ); }; get '/database' => sub { my $self = shift; my $vorname = $self->param('vorname'); my $nachname = $self->param('nachname'); my $steuernummer = $self->param('steuernummer'); my $strasse = $self->param('strasse'); my $nummer = $self->param('nummer'); my $ort = $self->param('ort'); my $plz = $self->param('plz'); my $exists = $self->param('exists'); if ( not $exists ) { my $sth = $dbh->prepare( "INSERT INTO $table ( vorname, nachname, steuernummer, strasse, nummer, ort, plz ) VALUES ( ?, ?, ?, ?, ?, ?, ? )" ); $sth->execute( $vorname, $nachname, $steuernummer, $strasse, $nummer, $ort, $plz ); } $self->render( 'database' ); }; app->start; __DATA__ @@ namen.html.ep

Vorname   :

Nachname:



Weiter      :
@@ steuernummer.html.ep

% if ( @$steuernummern == 0 ) { Steuernummer: % } elsif ( @$steuernummern == 1 ) { Steuernummer: % } else { Steuernummer: % for my $value ( @{$steuernummern} ) { % }



Weiter      :
@@ adresse.html.ep

Strasse     :

Nummer   :

Ort           :

PLZ          :



Weiter      :
@@ database.html.ep

Klicken Sie auf weiter um eine weiteren Eintrag hinzuzufügen.