Thread Wieso läuft dieses Skript unendlich lange?! (18 answers)
Opened by Gast at 2005-09-27 11:34

renee
 2005-09-27 12:02
#5694 #5694
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
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:
Code: (dl )
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";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Wieso läuft dieses Skript unendlich lange?!