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



#!/COMMUNITY

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




10.02.2012 / 09:34

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

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




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


BeitragDaten per URL übergeben und SQL-Datenbank auslesen
Seitenanfang
Hallo
Ich möchte per "href" eine Datei "ausgabe.pl" öffenen und ihr gleichzeitig eine Artikel-Nummer per Url mitteilen, nach der diese "ausgabe.pl" eine SQL-Datenbank sortiert und die Ergebnisse zurückgibt. Alles funktioniert bis auf die Übergabe der Art.-Nummer.

Bis jetzt rufe ich für jede Art.-Nr. eine extra angelegte Perl-Datei auf die die Datenbank mit dem Befehl

my $query = $db->prepare('SELECT * FROM Airflow WHERE artzuordnung LIKE "%45027%" ORDER BY art DESC');

sortiert.
Statt der in der Abfrage angegebenen Nummer 45027 möchte ich hier einen vom Browser per URL übergebenen Wert einfügen.

Für eine schnelle Antwort wäre ich sehr dankbar!
MfG
Jochem Heinen

Datum: 12.06.2006-12:32

Beitragre: Daten per URL übergeben und SQL-Datenbank auslesen
Seitenanfang
Hi,
einfach den wert an die url anhängen also:
href="ausgabe.pl?artzuordnung=123456"

in der ausgabe.pl dann die parameter auslesen:
my %PARA;
foreach ( split(/\&/ , $ENV{'QUERY_STRING'}) ) {
my ($feldname,$wert) = split(/=/) ;

$PARA{$feldname} = $wert ;
$PARA{$feldname} =~ tr/\+/ / ;
$PARA{$feldname} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg ;
}

und den mysql befehl abändern:
my $query = $db->prepare("SELECT * FROM Airflow WHERE artzuordnung LIKE '%".$PARA{'artzuordnung'}."%' ORDER BY art DESC');

und schon sollte es funzen

Datum: 14.06.2006-11:33

Beitragre: Daten per URL übergeben und SQL-Datenbank auslesen
Seitenanfang
Hallo "reuterc"

Vielen Dank für Deine Antwort. Werde ich gleich morgen ausprobieren.

Grüße aus der Eifel
Jochem

Datum: 14.06.2006-15:22

Beitragre: Daten per URL übergeben und SQL-Datenbank auslesen
Seitenanfang
Bitte nicht!!!

Zum Auslesen der Parameter sollte man CGI.pm nehmen.

Diesen Teil:

my %PARA;
foreach ( split(/\&/ , $ENV{'QUERY_STRING'}) ) {
my ($feldname,$wert) = split(/=/) ;

$PARA{$feldname} = $wert ;
$PARA{$feldname} =~ tr/\+/ / ;
$PARA{$feldname} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg ;
}

sollte man durch

use CGI;
my $cgi = CGI->new();
my %PARA = $cgi->Vars();

ersetzen! Viel handlicher, lesbarer, sicherer

Und für die SQL-Query sollte man die ?-Notation von DBI benutzen...

Also statt

my $query = $db->prepare("SELECT * FROM Airflow WHERE artzuordnung LIKE '%".$PARA{'artzuordnung'}."%' ORDER BY art DESC');

das hier:


my $query = $db->prepare("SELECT * FROM Airflow WHERE artzuordnung LIKE ? ORDER BY art DESC');
$query->execute('%'.$PARA{artzuordnung}.'%');

(siehe Doku zu DBI)

Datum: 19.06.2006-13:51

-






-
-