Beitrag von Athletickris (21 Beiträge) am Donnerstag, 25.August.2005, 19:27.
Get-Abfrage in Perl
Antworten
Beitrag von Claus (4645 Beiträge) am Donnerstag, 25.August.2005, 19:45.
Re: Get-Abfrage in Perl
Eigentlich wollte ich auf so eine gequirlte Sch.... nicht mehr antworten, aber was Du da versuchst ist so hahnebüchend, daß man darauf einfach antworten muß;-)
Dein "Quelltext":
<loop code=perl>
get "Ausrichter==$VereinsnameKurzform&Jahr==2005 sort=Datum", "Termine";
while(get_next("Termine"))
{
out "<a href=$Ausschreibung>";
out "KM " if $KM;
out "$Name am $DatumText in $Ort</a><br>";
}
</loop>
Das ist ein Parade-Beispiel dafür, daß man ohne lesen der Doku etc. genau da landet!!!!!
loop und perl-Befehle in einer tollen Kombination:
get fragt man so ab:
<perl>
get .........
</perl>
loop läuft nicht innerhalb von perl.
Ich kann Dir nur empfehlen, hier mal einen intensiven Blick zu werfen:
http://www.baseportal.de/baseportal/doku/wiki
In diesem Sinne
Gruß
Claus
PS: woanders kriegst Du, wenn überhaupt ein "rtfm"
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 25.August.2005, 21:36.
Re: Get-Abfrage in Perl
> Eigentlich wollte ich auf so eine gequirlte Sch.... nicht mehr antworten...
Ruuuuuhig, Brauner ,-) Du hilfst oft und vielen und das ist prima, aber dieser Tonfall ist unangebracht. Auch oder gerade wenn jemand einen Fehler macht, denn wenn alles richtig wäre, bräuchte er ja nicht fragen und etwas nicht zu wissen und danach zu fragen ist nie eine Schande ;-)
Ja und in diesem Fall machst Du (auch) einen Fehler, denn: ;-)
> loop läuft nicht innerhalb von perl.
Aber perl innerhalb vomn loop, wie im geposteten Code:
<loop code=perl>
get ...
...
</loop>
ist erstmal völlig Ok. Hier wird die Datenbank mit dem gleichen Namen wie die Seite komplett durchlaufen und der Teil innen drin als Perl-Code interpretiert - d.h. für jeden Datensatz wird ein Datensatz aus einer anderen Datenbank geholt...
Ob das so von athletickris gewollt war, ist eine andere Frage, so wie es aussieht, dürften Deine Lösungsvorschläge schon in die richtig Richtung gehen. Müsste athletickris aber mal genauer erklären, was genau passieren soll...
Das eigentliche Problem ist übrigens das Leerzeichen, denn bei: ;-)
get "Ausrichter==$VereinsnameKurzform&Jahr==2005 sort=Datum", "Termine";
und z.b. $VereinsnameKurzform = "LAZ Bruchköbel" kommt als Abfrage raus:
get "Ausrichter==LAZ Bruchköbel&Jahr==2005 sort=Datum", "Termine";
d.h. es wird nach "LAZ" gesucht... Also Leerzeichen escapen:
<perl>
$VereinsnameKurzform=~ s/ /\\ /g;
get "Ausrichter==$VereinsnameKurzform Jahr==2005 sort=Datum", "Termine";
while(get_next("Termine"))
{
out "<a href=$Ausschreibung>";
out "KM " if $KM;
out "$Name am $DatumText in $Ort</a><br>";
}
</perl>
oooooder die andere Abfrageform von "get" benutzen:
<perl>
get ["Datum", "==", "*", "&", "Ausrichter", "==", $VereinsnameKurzform, "&", "Jahr", "==", "2005"], "Termine";
while(get_next("Termine"))
{
out "<a href=$Ausschreibung>";
out "KM " if $KM;
out "$Name am $DatumText in $Ort</a><br>";
}
</perl>
Sollte schneller sein... ;-)
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 26.August.2005, 06:51.
Re: Get-Abfrage in Perl
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 26.August.2005, 12:15.
Re: Get-Abfrage in Perl
Jo, ich denke auch, dass er nur eine DB abfragen wollte, also insofern stimmt Dein Vorschlag schon ;-)
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 26.August.2005, 07:25.
Re: Get-Abfrage in Perl
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 26.August.2005, 12:20.
Re: Get-Abfrage in Perl
Ah ja, stimmt, war mir garnich bewusst ;-)
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 26.August.2005, 12:48.
Re: Get-Abfrage in Perl
war mir auch entfallen, hatte das aber noch dunkel in Erinnerung;-)
Musste meine private Bibliothek mit Anwendungen und Testläufen erst durchforsten, um das wiederzufinden (Alles noch etwas ungeordnet. Muß mir mal für jeden Befehl ein Dossier aus den einzelnen Varianten anlegen).
Dürfte bei vielen Datensätzen die Laufzeit im Gegensatz zum maskieren bei get geringer halten, bin aber nicht sicher;-)
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 26.August.2005, 14:42.
Re: Get-Abfrage in Perl
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 26.August.2005, 14:50.
Re: Get-Abfrage in Perl
Ist aber bei einer Suche( aus einem extra Template mit mehreren Suchfeldern) etwas kompliziert umzusetzen;-)
denke mal, da ist loop bei solchen Feldinhalten (xxxx yyyyy) dann schneller.
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 26.August.2005, 18:41.
Re: Get-Abfrage in Perl
Die Erstellungszeit von get [...] ist länger, dafür ist es schneller in der Ausführung... Aber wir reden hier von Milli-, wenn nich Mikrosekunden, letztendlich nimmt sichs nichts ;-)
Antworten
Beitrag von Athletickris (21 Beiträge) am Samstag, 27.August.2005, 12:04.
Re: Get-Abfrage in Perl
Hallo,
ihr braucht euch wegen mir nicht in die Wolle bekommen.
Ich lese die DOKU seeeeeeeeeeeehr ausführlich. Nur leider ist die Doku meiner Meinung nach nicht so ausführlich das alle Möglichkeiten erklärt werden.
Ist ja auch egal, dafür ist das Forum ja da. Und ich habe lange rumexperimentiert, bevor ich im Forum gefragt habe.
Auf jeden Fall hat es mit
<perl>
get ["Datum", "==", "*", "&", "Ausrichter", "==", $VereinsnameKurzform, "&", "Jahr", "==", "2005"], "Termine";
while(get_next("Termine"))
{
out "<a href=$Ausschreibung>";
out "KM " if $KM;
out "$Name am $DatumText in $Ort</a><br>";
}
</perl>
wunderbar geklappt. Danke.
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 27.August.2005, 19:55.
Re: Get-Abfrage in Perl
> ihr braucht euch wegen mir nicht in die Wolle bekommen.
Tun/haben wir nicht ;-)
> Ist ja auch egal, dafür ist das Forum ja da.
Genau ;-)
Antworten
Beitrag von Claus (4645 Beiträge) am Donnerstag, 25.August.2005, 20:04.
Re: Get-Abfrage in Perl
Damit es nicht wieder heißt, ich bin nur am meckern;-)
<perl>
get "Ausrichter==$VereinsnameKurzform Jahr==2005 sort=Datum", "Termine";
while(get_next("Termine"))
{
out "<a href=$Ausschreibung>";
out "KM " if $KM;
out "$Name am $DatumText in $Ort</a><br>";
}
</perl>
ansonsten mache einen loop:
<loop db=deine_db Ausrichter==$VereinsnameKurzform Jahr==2005 sort=Datum code=perl>
out "<a href=$Ausschreibung>";
out "KM " if $KM;
out "$Name am $DatumText in $Ort</a><br>";
</loop>
Gruß
claus
Antworten