2013-03-19T12:01:04 TobaxIch komme auf keinen logischen Lösungsansatz, wie ich die Kundendaten automatisch verlinke und mir nach einem Klick die entsprechenden Systeme angezeigt werden.
2013-03-19T12:14:08 clmsOder ist das eine 1:N Verknüpfung?
print "<tr><td><input type='checkbox' name='box' value='$id_kunde'/><td><a style='color:#000' href='../details.pl&ID=$id_kunde'>$kundenname</a></td><td>$wohnort</td><td>$strasse</td><td>$id_kunde</td></tr>\n";
1
2
3
4
5
<tr id="kunde-$kunid">
<td>Müller<td>
<td>123443<td>
<td><a href="#system-$kunden_sysid">$kunden_sysid</a><td>
</tr>
1
2
3
4
<tr id="#system-$sysid">
<td>Omnicron 4711 ASP<td>
<td>Alter naiver Servierknecht</a><td>
</tr>
2013-03-19T12:26:26 GwenDragonOder wolltest du nur Tabelle Kunden angezeigt haben und dann erst beim Klick auf den Kunden die System in der zweiten Tabelle angezeigt?
1
2
3
4
5
<tr>
<td>Müller</td>
<td>ID 123456789</td>
<td><a href="?$kunid">Systeme anzeigen</a></td>
</tr>
<a href='?&kunid'>Zeige Systeme</a>
1 2 3 4 5 6 7 8 9 10 11 12 13 14
use CGI; my $cgi = CGI->new; my $kunden_id = $cgi->param('kunid'); my @system_ids; if ($kunden_id =~ /^\d+$) { # kunid besteht nur aus Ziffern @system_ids = hole_systemids_uber_kunden_id($kunden_id); } gib_kunden_tabelle_aus($kunden_id); if (@system_ids) { gib_system_tabelle_aus(@system_ids); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
my $cgi = CGI->new;
my $kunden_id = $cgi->param('id_kunde');
verbinden_mysql();
my @system_ids = hole_systemids_uber_kunden_id($kunden_id);
#&gib_kunden_tabelle_aus($kunden_id);
#if (@system_ids) {
#&gib_system_tabelle_aus(@system_ids);
#};
sub hole_systemids_uber_kunden_id {
$kunden_id = @_;
$query_kdsys = "select ID from tb_systeme where ID='@_'";
$statement = $dbh->prepare($query_kdsys);
$statement->execute();
@data = $statement->fetchrow_array();
return @data;
}
print @system_ids;
$kunden_id = shift @_;
$kunden_id = shift;
1 2 3 4
$kunden_id = @_; $query_kdsys = "select ID from tb_systeme where ID='@_'"; $statement = $dbh->prepare($query_kdsys); $statement->execute();
1 2 3 4
($kunden_id) = @_; $query_kdsys = "select ID from tb_systeme where ID=?"; $statement = $dbh->prepare($query_kdsys); $statement->execute($kunden_id);
2013-03-19T12:56:36 TobaxAlso das mit dem Link funktioniert.
Code: (dl )<a href='?&kunid'>Zeige Systeme</a>
(...)
Doch wie gebe ich jetzt damit die zugehörigen Systeme aus, wenn ich auf den Link klicke?
<a href='neues-perl-programm.pl?&kunid=$kundenid'>Zeige Systeme</a>
my $kundenid = $cgi->param('kunid');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!C:/Perl/bin/perl.exe
use DBI;
use warnings;
use mysql;
use HTML::Template;
use HTML;
use CGI;
my $cgi = CGI->new;
print $cgi->header();
my $kunden_id = $cgi->param('$id_kunde');
hole_systemids_uber_kunden_id($kunden_id);
sub hole_systemids_uber_kunden_id {
($kunden_id) = @_;
$query_kdsys = "select ID from tb_systeme where ID=?";
$dbh = DBI->connect("DBI:mysql:projekt1:localhost", 'root', '');
$statement = $dbh->prepare($query_kdsys);
$statement->execute($kunden_id);
@data = $statement->fetchrow_array();
return @data;
}
print @data;
print "<tr><td><input type='checkbox' name='box' value='$id_kunde'/><td><a style='color:#000' href='?$id_kunde'>$kundenname</a></td><td>$wohnort</td><td>$strasse</td><td>$id_kunde</td></tr>\n";
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
#!C:/Perl/bin/perl.exe use DBI; use warnings; use mysql; use HTML::Template; use HTML; use CGI; my $cgi = CGI->new; print $cgi->header(); my $kunden_id = $cgi->param('id_kunde'); gib_kunden_tabelle_aus($kunden_id); my @data; my $option = $cgi->param('option'); if ($option eq 'systeme') { @data = hole_systemids_uber_kunden_id($kunden_id); } if (@data) { # gib HTML für Systeme aus gib_system_tabelle_aus(@data); exit; } else { # gib HTML für Kunde aus } sub hole_systemids_uber_kunden_id { ($kunden_id) = @_; $query_kdsys = "select ID from tb_systeme where ID=?"; $dbh = DBI->connect( "DBI:mysql:projekt1:localhost", 'root', '' ); $statement = $dbh->prepare($query_kdsys); $statement->execute($kunden_id); my @row; while (@row = $statement->fetchrow_array() ) { # weil es mehrere System-IDs sein können push @data,\@row; # sichere eine Ergebniszeile ins Array } return @data; }
<td><a style='color:#000' href='?id_kunde=$id_kunde&option=systeme'>$kundenname</a></td>