perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 34
Click for quality!




10.02.2012 / 10:09

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  CGI: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragPerl - DBI - mySQL | Verschachtelter Select funktioniert nicht
Seitenanfang
Hallo,

ich habe folgenden Quellcode:


$dbh = DBI->connect("DBI:mysql:database=$database;host=$hostname",$user, $password, {RaiseError => 1});

my $sth = $dbh->prepare("SELECT * FROM Main");
$sth->execute;

while (my $ref = $sth->fetchrow_hashref())
{

$data="Select * from Info where Host_Id='$ref->{'Server_Id'}'";
$ref2 = $dbh->selectrow_hasref($data);

print "<$ref->{'Server_Hostname'}";
print "<$ref2->{'Server_Beschreibung'}";



}
$sth->finish();
$dbh->disconnect();

Ich gehe also durch die Main Tabelle und erstelle üben den dort bekommenden Primärschlüssel eine weitere SELECT Anweißung um die Beschreibung für den aktuellen primär Schlüssel zu bekommen.

Leider funktioniert dabei garnichts. Erst wenn ich die Zeile weg lasse, funktioniert die erste Selectanweißung.

$ref2 = $dbh->selectrow_hasref($data);

Aber das kann doch nicht sein, das man keine zwei Selectanweiungen tätigen kann.

Vielen dank und Gruß
Jan

Datum: 20.05.2005-00:07

Beitragre: Perl - DBI - mySQL | Verschachtelter Select funktioniert nich
Seitenanfang
Hallo Jan,

ich kenne nun Deine Datenbankstruktur nicht, aber ich glaube Dein Ansatz ist falsch. Warum arbeitest Du nicht mit einem JOIN usw?

perlbert

Datum: 20.05.2005-01:35

Beitragre: Perl - DBI - mySQL | Verschachtelter Select funktioniert nich
Seitenanfang
Hallo, #

in etwa habe ich folgende Datenbank Struktur:

Main

Server_Id int primary key
Serber_hostname varchar(50)

Info

Info_Id int primary key
Server_Id int
Beschreibung varchar(100)
.
.
.
.

__________________________________

Meine Überlegung ist jetzt folgende:

ich selektiere auf die Tabelle main und bekomme alle Server.

Dann geh ich jeden Server in einer Schleife durch und lass mir die Eigenschaften für diesen selectieren.

Datum: 20.05.2005-10:15

Beitragre: Perl - DBI - mySQL | Verschachtelter Select funktioniert nich
Seitenanfang
my $statement = "SELECT * FROM Main INNER JOIN Info ON Main.Server_Id = Info.Server_Id";

my $sth = $dbh->prepare($statement) or die $dbh->errstr();
$sth->execute();

while(my @row = $sth->fetchrow_array()){
print @row,"\n";
}
$sth->finish();

Datum: 20.05.2005-11:00

Beitragre: Perl - DBI - mySQL | Verschachtelter Select funktioniert nich
Seitenanfang
Das Problem wurde gelöst.

ich habe ein Abfrage auf den Result gesetzt:

if (scalar ($row)) {print $$row{'Beschreibung'};}

Eigentlich ganz einfach.
Es lag vielleicht daran, dass es gestern schon so spät war =)

Datum: 20.05.2005-11:02

-






-
-