Beitrag von Jürgen (614 Beiträge) am Mittwoch, 16.Januar.2002, 10:53.
Suchabfrage
Habe Prob mit Suchabfrage. Folgendes ich hab da eine Seite die die
Suchabfrage über ein Form auslöst. Sieht so in etwa aus.
<FORM NAME="search" ENCTYPE="multipart/form-data" ACTION="http://meineDoman.info/baseportal.pl?htx=/meineDomain.de/blabla/search" METHOD=POST>
<INPUT TYPE=HIDDEN NAME="htx=" VALUE="/meineDomain.de/blabla/search">
<INPUT TYPE=HIDDEN NAME="cmd=" VALUE="search">
<INPUT TYPE=HIDDEN NAME="db=" VALUE="adress_stamm">
<INPUT TYPE=HIDDEN NAME="Such:=" VALUE="$Such">
.....
Das Ziel Template(search) ist in HTML gesetzt. Die Datenbank wird über Loop ausgelesen.
Das Loop:
<loop db=meineDB Firmenname~=$Such Freigegeben==1 sort=Firmenname convert_html=Firma range^=0,10>
Jetzt wird mir aber bei keinem gefundenen Eintrag ja nichts angezeigt, (logisch) :-))
aber ich möchte hier dann die Ausgabe habe, das es zum B.s. heißt
"Keine Einträge gefunden"
Wie stelle ich das an ?? Wer kann mir helfen??
Danke vorab.
Gruß Jürgen
Antworten
Beitrag von Marco (840 Beiträge) am Mittwoch, 16.Januar.2002, 12:07. WWW: www.lsn-online.de
Re: Suchabfrage
Hallo Jürgen,
das müßte mit einem kurzen Perl-Script lösbar sein. Der Loop-Befehl setzt automatisch die Variable $_amount_query, die mit der Anzahl der ausgweählten Datensätze gefüllt ist.
Der Code könnte so aussehen:
<loop db=meineDB Firmenname~=$Such Freigegeben==1 sort=Firmenname convert_html=Firma range^=0,10 code=perl>
if($_amount_query>0)
out <<EOF;
<!-- Hier kommt Dein normaler HTML-Code hin -->
EOF
{
<!-- Hier kommt der HTML-Code hin, falls es keinen Treffer gab -->
}
Denk bitte daran Anführungszeichen etc. innerhalb eines Perl-Cpdes mit "\" zu maskieren, z.B.
<a href=\"http://www....\">
mfg
Marco
Antworten
Beitrag von Jürgen (614 Beiträge) am Mittwoch, 16.Januar.2002, 14:26.
Re: Suchabfrage
Hi Marco,
danke vorab, aber ich hab da noch ein Prob. Jetzt bekomme ich als Anzeige meiner Seite(search)Fehler...
Ich weis in etwa das es an den Maskierungen hängt,
aber wo?? Bin Per-Newbie :-(
So sieht die Fehlermeldung aus:
[error (loop): glob trapped by operation mask at (eval 1081) line 13. ][error (loop): glob trapped by operation mask at (eval 1086) line 13. ][error (loop): glob trapped by operation mask at (eval 1091) line 13. ][error (loop): glob trapped by operation mask at (eval 1096) line 13. ][error (loop): glob trapped by operation mask at (eval 1101) line 13. ][error (loop): glob trapped by operation mask at (eval 1106) line 13. ][error (loop): glob trapped by operation mask at (eval 1111) line 13. ][error (loop): glob trapped by operation mask at (eval 1116) line 13. ][error (loop): glob trapped by operation mask at (eval 1121) line 13. ][error (loop): glob trapped by operation mask at (eval 1126) line 13. ][error (loop): glob trapped by operation mask at (eval 1131) line 13. ][error (loop): glob trapped by operation mask at (eval 1136) line 13. ][error (loop): glob trapped by operation mask at (eval 1141) line 13. ][error (loop): glob trapped by operation mask at (eval 1146) line 13. ][error (loop): glob trapped by operation mask at (eval 1151) line 13. ][error (loop): glob trapped by operation mask at (eval 1156) line 13. ][error (loop): glob trapped by operation mask at (eval 1161) line 13. ][error (loop): glob trapped by operation mask at (eval 1166) line 13. ]
So sieht im Moment mein Html aus:
<loop db=adress_stamm Firmenname~=$Such Freigegeben==1 sort=Firmenname convert_html=Firma range^=0,100 code=perl>
if($_amount_query>0)
{
out <<EOF;
<p>test1</p>
EOF
} else
{
out <<EOF;
<p>test2</p>
EOF
}
...
<TABLE ID="Tabelle2" BORDER=0 CELLSPACING=2 CELLPADDING=0 WIDTH=100%>
<TR VALIGN=MIDDLE ALIGN=LEFT>
<TD WIDTH=547 BGCOLOR="#F0F0F0">
<H2><FONT COLOR="#F0F0F0"> </FONT>$Firmenname</TD>
</TR>
<TR VALIGN=TOP ALIGN=LEFT>
<TD WIDTH=547 HEIGHT=151 BGCOLOR="$Hintergrund_Aktiv">
.... usw.
Was muß ich anstellen, daß das funzt???
Gruß Jürgen
Antworten
Beitrag von Claus S, (0 Beiträge) am Mittwoch, 16.Januar.2002, 15:04.
Re: Suchabfrage
hallo jürgen,
wahrscheinlich liegt es am 'EOF', der ist sehr empfindlich. 'EOF' muss am anfang der zeile und alleine stehen. noch nicht mal gefolgt von einem leerzeichen (und das ist in deinem code der fall).
hoffe, das wars.
gruss claus
Antworten
Beitrag von Marco (840 Beiträge) am Mittwoch, 16.Januar.2002, 15:23.
Re: Suchabfrage
Antworten
Beitrag von Jürgen (614 Beiträge) am Mittwoch, 16.Januar.2002, 16:05.
Re: Suchabfrage
Hi Marco,
folgendes, wenn ich das loop(</loop>) setze wird mir
ja normalerweise meine Datenbank nicht mehr ausgelesen.
Sollte ja eigentlich in meiner Tabelle erscheinen.
Trotz alledem bekomme ich die Fehlermeldung wenn ich
das loop so anordne wie du es beschrieben hast.
Hab auch sämtliche leer's aus meinem Template gelöscht.
Fehlermeldung wurde kleiner, aber funzt trotzdem nicht.
Vieleicht hat ja einer noch eine Lösung. Danke.
Gruß Jürgen
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 16.Januar.2002, 16:11.
Re: Suchabfrage
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 16.Januar.2002, 16:12.
Re: Suchabfrage
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 16.Januar.2002, 16:14.
Re: Suchabfrage
das erste perl ist zuviel :-(
Sander
Antworten
Beitrag von Jürgen (614 Beiträge) am Mittwoch, 16.Januar.2002, 18:11.
Re: Suchabfrage
Hi Sander und Marco,
danke für die Tipps jetzt funzt es. Jetzt hab ich da noch ein Prob. Wenn ich aus meinem Suchformular die
Suchabfrage starte und das Zieltemplate mir die Angabe
macht "Keine Datensätze gefunden", erscheint auch das Vor- und Zurückblattern (Perlscript), sollte eigentlich nur wie gehabt "Keine Datensätze gefunden" anzeigen.
Was mache ich da noch falsch??
Danke
Gruß Jürgen
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 16.Januar.2002, 19:16.
Re: Suchabfrage
leg mal den Code hier rein
Antworten
Beitrag von Jürgen (614 Beiträge) am Mittwoch, 16.Januar.2002, 19:37.
Re: Suchabfrage
Hi Sander,
anbei mein Code:
.....
<TD WIDTH=551><loop db=adress_stamm Firmenname~=$Such Freigegeben==1 sort=Firmenname convert_html=Beschreibung range^=0,5>
.... Meine Tabelle(Html)
<perl>
unless ($_amount)
{
out "keine Einträge gefunden";
} else
{
out "jkljdlgjldjfgj";
}
my $newrange=$_range+$_range_length;
my $oldrange=$_range-$_range_length;
$oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
out "<p>[ <a href=\"$_link&range=$oldrange,$_range_length\">Vorherige Einträge</a> ] " if $oldrange>=0;
out "[ <a href=\"$_link&range=$newrange,$_range_length\">Weitere Einträge</a> ]" if $newrange<$_amount_all;
</perl>
</TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML>
Ich hab keine Ahnung warum ?????? :-((
Gruß Jürgen
P.s. Wie kann bzw. muß man den Perlcode ändern um
z.B. anzuzeigen um wieviel Seiten es sich handelt??
z.B. so: [Vorherige Einträge] 1-5 [Weitere Einträge]
Antworten
Beitrag von Marco (840 Beiträge) am Donnerstag, 17.Januar.2002, 12:18.
Re: Suchabfrage
Hallo Jürgen,
wenn die Links nur erscheinen sollen, wenn es mehr als 0 Treffer gibt, dann nimm das doch in den "else"-Teil auf...
<perl>
unless ($_amount)
{
out "keine Einträge gefunden";
} else
{
my $newrange=$_range+$_range_length;
my $oldrange=$_range-$_range_length;
$oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
out "<p>[ <a href=\"$_link&range=$oldrange,$_range_length\">Vorherige Einträge</a> ] " if $oldrange>=0;
out "[ <a href=\"$_link&range=$newrange,$_range_length\">Weitere Einträge</a> ]" if $newrange<$_amount_all;
}
</perl>
Antworten
Beitrag von Jürgen (614 Beiträge) am Freitag, 18.Januar.2002, 22:05.
Re: Suchabfrage
Hi Marco,
sorry, das es solange gedauert hat, aber ich hatte anderes zu tun.
Danke für den Tipp(funzt). Hoffe, seid wieder da, wenn ich Prob habe. Danke.
Gruß Jürgen
Antworten