Beitrag von Helmut (103 Beiträge) am Samstag, 19.Januar.2002, 12:14.
Frage zur Suchfunktion
Hallo, Ich benutze die Volltextsuche aus der Doku/Bezahlversion.
Mein Problem: Da ich meist nach 2 Begriffen suche, erhalte ich die exakte Ausgabe nur nach Eingabe eines "+" vor jedem Begriff
und auch nur, wenn ich vor das zweite "+" ein Leerzeichen setze. Habe schon versucht das "+" hinter dem Operator einzubauen,
aber das hilft auch nicht viel.
Hat einer der Suchprofis eine Lösung? Danke schonmal, Helmut
Hier der Quelltext:
<HTML>
<HEAD>
<TITLE>Suche</TITLE>
</HEAD>
<BODY BACKGROUND="http://www.grobmotorik.de/images/bg.jpg">
<FORM ACTION="baseportal.pl? htx=$htx" METHOD="POST" TARGET="daten"
ENCTYPE="multipart/form-data">
<P><INPUT TYPE="hidden" NAME="htx=" VALUE="/grobmotorik.de/webladen/produkte_Kopie">
<TABLE WIDTH="109" BORDER="0" CELLSPACING="2" CELLPADDING="0">
<TR>
<TD WIDTH="100%">
<P><CENTER> Artikelsuche:</CENTER></TD>
</TR>
<TR>
<TD WIDTH="100%">
<P><CENTER> <INPUT TYPE="text" SIZE="13" NAME="_fullsearch=="
VALUE="$_fullsearch"></CENTER></TD>
</TR>
<TR>
<TD WIDTH="100%">
<P><CENTER> <INPUT TYPE="submit" VALUE="Suchen"></CENTER></TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
Antworten
Beitrag von Michael Koch (344 Beiträge) am Samstag, 19.Januar.2002, 12:28.
Re: Frage zur Suchfunktion
Antworten
Beitrag von Helmut (103 Beiträge) am Montag, 21.Januar.2002, 12:01.
Re: Frage zur Suchfunktion -Und- Verknüpfung
Hallo, ich habe versucht (nach dieser Anleitung:http://www.baseportal.de/cgi-bin/baseportal.pl?htx=/baseportal/forum&wcheck=1&Pos=4049.05 ) in die Suchfunktion aus der Doku eine Und -Verknüpfung einzubauen, leider klappt es noch nicht. Ich habe bestimmt irgend etwas falsch gemacht. Vielleicht kann mir jemand helfen... Danke schonmal, Helmut
#############so sieht mein Eingabefenster aus#####
<P><CENTER> <INPUT TYPE="text" SIZE="13" NAME="suchbegriffe="
VALUE="$_fullsearch"></CENTER></TD>
#############und so die Ausgabe######
<html>
<head>
<title>Grobmotorik_Laden</title>
<include src=css>
</head>
<body bgcolor="#FFFFFF">
<perl>
@suchargumente=split(/ /, $suchbegriffe);
$suchbegriffe="+";
for (@suchargumente) {
$suchbegriffe=$suchbegriffe.$_.",+";
}
$suchbegriffe=substr($suchbegriffe,0,length($suchbegriffe)-2);
</perl>
$link="bbeta.pl?htx=".$htx;
get "_fullsearch==$suchbegriffe";
return if $_fullsearch eq "";
while(get_next)
{
$out= <<EOF;
<b>$bezeichnung</b><br>$beschreibung <p>
EOF
$out=~ s#$_fullsearch_regex#<b><font color=red>$1</font></b>#g;
out $out;
}
my $newrange=$_fullsearch_range+$_fullsearch_range_length;
my $txt;
if($_fullsearch_match_pos<$newrange)
{
$txt="Suche nach weiteren Treffern";
$newrange=$_fullsearch_match_pos;
} else
{
out "<b>Kein Treffer.</b><p>" if $_fullsearch_amount<1;
$txt="Suche in weiteren Datensätzen";
}
if($newrange<$_amount_all)
{
out "Es wurde noch nicht in allen Datensätzen gesucht: ";
out "<a href=\"baseportal.pl?htx=$htx&_fullsearch==".convert_url($_fullsearch).
"&fullsearch_range=$newrange,$_fullsearch_range_length\">$bezeichnung</a>";
} else
{
out "Die Datenbank wurde komplett durchsucht.";
}
Antworten
Beitrag von StefanKrupop (7 Beiträge) am Montag, 21.Januar.2002, 19:23.
Re: Frage zur Suchfunktion -Und- Verknüpfung
Antworten
Beitrag von Helmut (103 Beiträge) am Montag, 21.Januar.2002, 19:38.
Re: Frage zur Suchfunktion -Und- Verknüpfung
Hallo Stefan, danke für die schnelle Antwort, hab es eingebastelt, das wars aber leider nicht, die Ausgabe zeigt überhaupt nichts an, auch keine Fehlermeldung, wie vorher auch schon nicht. Noch eine Idee?
<P><CENTER> <INPUT TYPE="text" SIZE="13" NAME="suchbegriffe="
VALUE="$_fullsearch"></CENTER></TD>
#############und so die Ausgabe######
<html>
<head>
<title>Grobmotorik_Laden</title>
<include src=css>
</head>
<body bgcolor="#FFFFFF">
<perl>
@suchargumente=split(/ /, $suchbegriffe);
$suchbegriffe="+";
for (@suchargumente) {
$suchbegriffe=$suchbegriffe.$_.",+";
}
$suchbegriffe=substr($suchbegriffe,0,length($suchbegriffe)-2);
</perl>
<perl>
$link="bbeta.pl?htx=".$htx;
get "_fullsearch~~$suchbegriffe";
return if $_fullsearch eq "";
while(get_next)
{
$out= <<EOF;
<b>$bezeichnung</b><br>$beschreibung <p>
EOF
$out=~ s#$_fullsearch_regex#<b><font color=red>$1</font></b>#g;
out $out;
}
my $newrange=$_fullsearch_range+$_fullsearch_range_length;
my $txt;
if($_fullsearch_match_pos<$newrange)
{
$txt="Suche nach weiteren Treffern";
$newrange=$_fullsearch_match_pos;
} else
{
out "<b>Kein Treffer.</b><p>" if $_fullsearch_amount<1;
$txt="Suche in weiteren Datensätzen";
}
if($newrange<$_amount_all)
{
out "Es wurde noch nicht in allen Datensätzen gesucht: ";
out "<a href=\"baseportal.pl?htx=$htx&_fullsearch==".convert_url($_fullsearch).
"&fullsearch_range=$newrange,$_fullsearch_range_length\">$bezeichnung</a>";
} else
{
out "Die Datenbank wurde komplett durchsucht.";
}
Antworten
Beitrag von Michael Koch (344 Beiträge) am Montag, 21.Januar.2002, 20:04.
Re: Frage zur Suchfunktion -Und- Verknüpfung
im Dezember hatte ich es hingekrigt hier Ausschniite aus meinem Temlate:
der Anfang:
<perl>
if (index($suchbegriffe,"+") == -1) {
@suchargumente=split(/ /, $suchbegriffe);
$suchbegriffe="+";
for (@suchargumente) {
$suchbegriffe=$suchbegriffe.$_.",+";
}
$suchbegriffe=substr($suchbegriffe,0,length($suchbegriffe)-2);
}
</perl>
und der loop
<loop db=brueckenbau code=perl _fullsearch==$suchbegriffe sort=-Datum>
und das ganze dann in der bbeta aufrufen.
sonst geht es nicht.
Ich hoffe ich nicht wieder was wichtiges vergessen.
Michael
Antworten
Beitrag von Helmut (103 Beiträge) am Montag, 21.Januar.2002, 20:36.
Re: Frage zur Suchfunktion -Und- Verknüpfung
Hallo Michael, klappt schon besser, wenn ich das Loop einbaue, komischerweise gibt es jetzt nur einen Datensatz als ergebnis, auch nur , wenn ich nur einen Suchbegriff eingebe.
Vielleicht ist da noch irgendwo ein Leerzeichen vor dem Suchbegriff? Gruß, Helmut
<perl>
if (index($suchbegriffe,"+") ==-1) {
@suchargumente=split(/ /,$suchbegriffe);
$suchbegriffe="+";
for (@suchargumente) {
$suchbegriffe=$suchbegriffe.$_.",+";
}
$suchbegriffe=substr($suchbegriffe,0,length($suchbegriffe)-2);
}
</perl>
<loop db=produkte_Kopie code=perl _fullsearch==$suchbegriffe sort=sku >
</loop>
<perl>
$link="bbeta.pl?htx=".$htx;
return if $_fullsearch eq "";
while(get_next)
{
$out= <<EOF;
<b><a href="baseportal.pl?htx=$link&show=products&sku=$sku"></a>$bezeichnung</b><br>$beschreibung - $bestnr<p>
EOF
Antworten
Beitrag von Michael Koch (344 Beiträge) am Montag, 21.Januar.2002, 21:15.
Re: Frage zur Suchfunktion -Und- Verknüpfung
Antworten
Beitrag von Helmut (103 Beiträge) am Dienstag, 22.Januar.2002, 10:13.
Re: Frage zur Suchfunktion -Und- Verknüpfung
Hallo Michael, ich dachte, wenn ich keinen Range angebe, ist die Ausgabe automatisch auf 10 begrenzt. Ich habe auch in die Eingabemaske Deinen Vorschlag mal eingebaut, das wars aber leider nicht. Irgendwie funktioniert das +-Script nicht mit der Dokuversion. Ich werde halt nocht ein wenig rumprobieren. Danke für Deine Hilfe, Helmut
Antworten