Man kann "alles" zurückgeben. Aber ich denke, dass Du alle selektierte Einträge haben willst. Damit Du alle Einträge bekommst, schiebe ich die in ein Array...
Mal als Erklärung, warum Dein Skript endlos lief:
Stelle Datenbankverbindung her
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
selektiere Alles aus Tabelle aufsteigend sortiert, liefere die erste Zeile (while-Bedingung ist true)
gebe die Id aus
[... und so weiter ...]
Ich nehme an, Dein ursprünglicher Gedanke war, das Statement einmal auszuführen und dann immer auf den nächsten Eintrag zu zeigen und auszugeben. Du rufst aber bei jedem Schleifendurchlauf die Methode auf, in der jedesmal das Statement erneut ausgeführt wird...
Eine andere Möglichkeit wäre:
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
#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
#Variabeln Deklarierung
my $dbname="cdliste";
my $username="root";
my $pw="123";
my $db = "DBI:mysql:$dbname";
#Die Verbindung zur Datenbank wird hergestellt
my $dbh = DBI->connect($db, $username, $pw, { RaiseError => 1 }) || die("Kann DB nicht öffnen!");
sub selecthashref ($){
my $sth = $dbh->prepare( $_[0] ) or return "$DBI::err: $DBI::errstr";
$sth->execute() or die $dbh->errstr();
return $sth;
};
#Legt den Dokumenttypen fest
print "Content-type: text/html; charset=iso-8859-1\n\n";
my $sth = selecthashref("SELECT * FROM ordner ORDER BY ordnername ASC");
while ($row_ref = $sth->fetchrow_hashref()){
print "$row_ref->{ordnerid}\n";
}