Beitrag von herbert (385 Beiträge) am Freitag, 23.Dezember.2005, 19:39.
eigene suchseite findet nur in einem feld
hallo
erstmal frohe weihnacht am alle forumsteilnehmer <;-}}}
nun zum ernst
bei meiner eigenen suchabfrage möchte ich eine abfrage über 2 felder machen, sobald ich diese einfüge wird aber nur noch entweder über die 2Feld suche -oder- ein anderes Feld die passenden einträge gefunden, in kompination, also 2Feld + anderers Feld (zB. Branche+Branche_2=metzger / Ort=speyer) werden nur einträge die zu Branche oder Branche_2 passen ausgegeben.
vielleicht hat jemand eine Idee - im forum hab ich bisher keine lösung gefunden.
gruss herbert
Antworten
Beitrag von herbert (385 Beiträge) am Samstag, 24.Dezember.2005, 06:40.
Re: eigene suchseite findet nur in einem feld - code zusatz
ach so, ich gebe die seite in loop aus ...
if ($_get{cmd} eq "all"){
$_header="Location:http://compass-pfalz.de/cgi-bin/baseportal.pl?htx=/detail_de&db=compass&Id==$Id\n\n";
$_get{cmd}="";
}
</perl>
</head>
<body .......
<perl>
$v=$v||0;
</perl>
<perl>
if($cmd eq "do_search")
{
out <<EOF;
Suche:<table cellspacing=2 cellpadding=0 border=0><tr><td></td><td><table cellpadding=0 cellspacing=0 border=0 bgcolor=99FFCC><tr><td><table border=0 cellspacing=1 cellpadding=2>
<form action="http://compass-pfalz.de/cgi-bin/baseportal.pl?htx=/compass_de&db=compass&cmd=search" method="post" enctype="multipart/form-data"><input type=hidden name="htx=" value="/compass_de">
<tr><td align=right>Firmenname:</td><td>
<input type="text" name="firmenname~=" size=20 value=""></td></tr>
<tr><td align=right>Name:</td><td><input type="text" Name="name~=" size=20 value=""></td></tr>
<tr><td align=right>rubrik:</td><td><select name="rubrik~=" name="_baseportal_form0">
<option>
<option>Gastronomie-Catering-Hotels-Pensionen
<option>Haus+Garten Handwerker-Einrichtung
##hier hab ich die suche über zwei felder eingefügt
<tr><td align=right>Branche:</td>
<td><input type="text" name="suche_branche=" size=20 value=""></td>
###für feld branche oder feld branche_2
<tr><td align=right>Strasse:</td>
<td><input type="text" name="anschrift~=" size=20 value=""></td></tr>
<tr><td align=right>PLZ:</td>
<td><input type="text" name="plz~=" size=20 value=""></td></tr>
<tr><td align=right>Gemeinde:</td>
<td><input type="text" name="gemeinde~=" size=20 value=""></td></tr>
<tr><td></td><td nowrap><input type=submit value="Abschicken">
</td></tr></form></table></td></tr></table></td></tr></table>
EOF
}
</perl>
###merken für blättern
<perl>
$merken="&suche_branche=$suche_branche" if $suche_branche;
$merken.="&branche~=$_sel{branche}" if $_sel{branche};
$merken.="&branche_2~=$_sel{branche_2}" if $_sel{branche_2};
..........
$merken.="&gemeinde~=$_sel{gemeinde}" if $_sel{gemeinde};
..........
</perl>
<left>
<do action=all db=compass indexfield=firmenname databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=0 gridcolor=b0b0b0 dataface=arial,helvetica pagebrowse=top,bottom buttonbrowse=top input=no keyfield=firmenname language=de pagebrowse=top buttonbrowse=top listtype=- searchfields=no input=no
</left>
<loop db=compass sort=-Hits range^=$v,50 branche~=$suche_branche|branche_2~=$suche_branche>
##wenn ich hier zB. &gemeinde~=$gemeinde eingebe tut sich auch nichts
<table width="1200" border="1" rules="rows" cellpadding="5">
<tr>
.................
hat jemand eine Idee
was mach ich falsch
gruss herbert
Antworten
Beitrag von Claus (4645 Beiträge) am Samstag, 24.Dezember.2005, 09:55.
Re: eigene suchseite findet nur in einem feld - code zusatz
Antworten
Beitrag von herbert (385 Beiträge) am Samstag, 24.Dezember.2005, 22:13.
Re: eigene suchseite findet nur in einem feld - code zusatz
geht leider nicht
[ Fehler: Feld |branche_2 in compass nicht vorhanden
gruss herbert
Antworten
Beitrag von herbert (385 Beiträge) am Samstag, 24.Dezember.2005, 22:19.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
frage an den spezialisten
Antworten
Beitrag von hempelr (1976 Beiträge) am Sonntag, 25.Dezember.2005, 10:43.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
bin zwar nicht sander ;-)
Der Ausdruck im Loop, so wie du ihn verwendet hast ist schon richtig.
Allerdings gibt es das "Problem", dass mit dem Term
branche~=$suche_branche|branche_2~=$suche_branche
jeweils nur nach "beginnt nit" des übergebenen Suchtextes (bis zum möglicherweise eingegebenen Leerzeichen) gesucht wird.
Ausserdem bin ich mir überhaupt nicht sicher, wie sich die Kombination von sowohl do als auch loop auf die Blätterlinks verhält - IMHO wird das von dir übergebene Feldnamen-Wertpaar nicht in den loop-Hash aufgenommen (weil dort IMHO nur doppeloperator-gebundene Feldnamen reinkommen - also sowas wie (field)name="suchen~=" oder (field)name="suchen==" usw.)
Wenn du ne "richtige" Volltextsuche über den ins Formularfeld eingegebenen Inhalt machen willst, müsste das IMHO mit ner Regex bzw. der Perl-Funktion Index und nem Zwischenspeichern in nem Hash bestehend aus bspw. Kontext des Suchbegriffes und Id des Datensatzes sein, wobei dann in Abhängigkeit ob was gefunden wurde oder nicht die einzelnen Hash-Key-Wertpaare in Links umgebaut werden müssten.
Ich glaube, die zwei Beispiele von H. Fehde in der Bib (Eine Volltext-Suche mit der Perl-Funktion [index] von H.Fehde am 7.12.2001, 15:33 und Eine erweiterte Volltext-Suche mit Ausgabe der markierten Treffer von H.Fehde am 14.12.2001, 22:17) könnten dich da weiterbringen und wesentliche Impulse zum umbauen und einbauen in deine Anwendung bringen.
Frohe Weihnachten allen BasePortalern
Antworten
Beitrag von hempelr (1976 Beiträge) am Sonntag, 25.Dezember.2005, 11:01.
Re: eigene suchseite - Ergänzung weil ersten Beitrag nicht gelesen
Sorry, ich hatte deine erste Anfrage nicht richtig gelesen/Verstanden.
Du suchst ja offenbar doch nur nach "beginnt mit".
Der Sachverhalt, dass entweder nur die Zweifeldsuche (wenn was drin steht) oder die Suche nach einem dritten Sachverhalt (hier ort wenn was drinsteht) ist ein Problem des Vorrangs logischer Operatoren bzw. Erfüllung des logischen Ausdrucks.
Normalerweise müsste man Klammern, das geht aber im loop IMHO nicht.
Also versuch mal, den dritten Sachverhalt nach vorn zu setzen, und die Oderverknüpfung der zweifeldabfrage mit und danach, also in etwa so:
<loop ...gemeinde=$gemeinde&branche~=$suche_branche|branche_2~=$suche_branche ...>
Weiss allerdings nicht, was passiert, wenn ein Kriterium nicht vorhanden ist. Ich belege grundsätzlich in solchen Fällen die variablen Suchwerte, wenn sie nicht per get ans Script übergeben werden, dann halt mit dem "*" für "gilt für alles", so sind immer definierte Verhältnisse in den Abfragen vorhanden.
Zu bedenken ist allerdings, dass der "*" nicht mit in Links verwendet werden kann und auch nicht per convert_url benutzt werden kann, warum bin ich noch nicht hintergestiegen - es muss also in den Blätterlinks ein "Leerwert" stehen.
Hoffe, es hilft
Ruben
Antworten
Beitrag von herbert (385 Beiträge) am Sonntag, 25.Dezember.2005, 17:53.
Re: eigene suchseite - Ergänzung weil ersten Beitrag nicht gelesen
danke für die tipps
werds mal testen
du hast recht eine fullsearch habe ich auch eingebaut, mir geht es um die zwei-feld abfrage,kriteien sind auf jedenfall vorhanden, mit den blättern komm ich glaube schon klar,hab ich per merken durchgeschleift(hoffentlich stimmt das was ich hier schreibe)
gruss herbert
und guten Rutsch <;-}}
Antworten
Beitrag von herbert (385 Beiträge) am Sonntag, 25.Dezember.2005, 17:57.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
sorry, was bedeutet IMHO
der begriff ist mir leider geläufig
gruss herbert
Antworten
Beitrag von herbert (385 Beiträge) am Sonntag, 25.Dezember.2005, 19:02.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
sorry, was bedeutet IMHO
der begriff ist mir leider NICHT geläufig
Antworten
Beitrag von Claus S. (1671 Beiträge) am Sonntag, 25.Dezember.2005, 19:25.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Antworten
Beitrag von herbert (385 Beiträge) am Sonntag, 25.Dezember.2005, 20:08.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Antworten
Beitrag von Claus (4645 Beiträge) am Sonntag, 25.Dezember.2005, 20:08.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Antworten
Beitrag von herbert (385 Beiträge) am Sonntag, 25.Dezember.2005, 20:38.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
vielen dank auch dir ..
werds mal morgen testen, heute is der magen + gehirn zu voll, hoffentlich bald weihnachten vorbei, es grüsst das christkind (hatte gestern b-day)
danke an alle
herbert
Antworten
Beitrag von Claus (4645 Beiträge) am Sonntag, 25.Dezember.2005, 21:47. WWW: jobmarder.de
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
herzlichen Glückwunsch nachträglich. Hatte dieses Jahr auch 'nen runden (welchen verrate ich hier aber nicht);), aber durch Todesfall in der Familie unmittelbar vorher ausfallen lassen. Werde ich eben in 2006 Feiern. Bin auch froh, wenn das Fest vorbei ist, der Kreis wird zunehmend kleiner.
Wenn Du noch Fragen hast, kein Problem.
Gruß
Claus
Antworten
Beitrag von herbert (385 Beiträge) am Montag, 26.Dezember.2005, 14:55.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
hallo danke der wünsche
tja mein prob. steht immer noch, die zwei-feld-abfrage geht ja, nur sobald ich ein seperates 3. feld in die suche miteinbeziehe komm ich nicht auf die gewünschten werte.
zB. ich suche über 2 felder (branche: + branche_2:) dazu 2. option (gemeinde:) --- gefunden wird nur (branche: + branche_2:)
habe auch schon probiert die zweite option vorne anzustellen, <loop ..... gemeinde=$gemeinde&branche~=$suche_branche | branche_2~=$suche_branche>
grübel
geht einfach nicht, ist das überhaupt machbar
gruss herbert
Antworten
Beitrag von Claus (4645 Beiträge) am Montag, 26.Dezember.2005, 17:00.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Antworten
Beitrag von richard (1187 Beiträge) am Dienstag, 27.Dezember.2005, 09:05.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Will mich an diesem Ratespiel auch mal beteiligen und schlage folgendes vor:
branche~=$branche&gemeinde~=$gemeinde|branche2~=$branche&gemeinde~=$gemeinde
bzw. für do action=all:
branche~=$branche and gemeinde~=$gemeinde or branche2~=$branche and gemeinde~=$gemeinde
Würde mich selber interessieren, ob diese Art der "Klammerung" (Hallo Ruben) im do action funktioniert.
Wünsche noch allen ein schönes Weihnachtsfest gehabt zu haben und alles Gute für das kommende Jahr.
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 28.Dezember.2005, 13:01.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Hallo Richard,
der testlink mit dem do action=all ist nicht geraten, sondern Fakt;)
Gruß
Claus
Antworten
Beitrag von richard (1187 Beiträge) am Mittwoch, 28.Dezember.2005, 14:19.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Hallo Claus!
Wollte niemndem auf den Schlips treten.
Ich hatte mir nur meine Gedanken über die Logik der nachgefragten Abfrage unter Berücksichtigung der Priorität der logischen Operatoren gemacht. Es mag sein, daß dies bei do action keine Rolle spielt - ich kann das nicht beurteilen.
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 28.Dezember.2005, 15:09.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Antworten
Beitrag von hempelr (1976 Beiträge) am Mittwoch, 28.Dezember.2005, 17:34.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
mhm - ich find bei dem Testlink keine Suchseite mit den drei Feldern - ist nur ne einfache Ausgabe ner Testtabelle (oder hab ich was nicht geschnitten?)
Wäre schon interessant, ob das ohne Klammern (weil es ja nicht geht) und dann wie sowohl im loop als auch im do hinzubekommen ist.
Antworten
Beitrag von Hallo Ruben, (0 Beiträge) am Mittwoch, 28.Dezember.2005, 17:52.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Hallo Ruben,
schon so lange raus aus den Standards?;)
einfach auf "Suche" klicken;)
habe mal alle 3 Felder freigeschaltet. Kannst ja mal probieren.
Ich denke immer um die Ecke, solltest Du doch wissen;)
Gruß
Claus
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 28.Dezember.2005, 17:54.
Re: eigene suchseite fin.../Nachtrag;)
ist nur 'ne Seite ohne loop sondern nur mit do action=all
Gruß
Claus
Antworten
Beitrag von hempelr (1976 Beiträge) am Mittwoch, 28.Dezember.2005, 20:25.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
Antworten
Beitrag von Claus (4645 Beiträge) am Donnerstag, 29.Dezember.2005, 13:21.
Re: @sander -----eigene suchseite findet nur in einem feld - code zusatz
hast ja recht, wollte auch nur das Prinzip erklären.;)
Gruß
Claus
PS: hat ja auch bei Herbert geklappt;))
Antworten
Beitrag von Claus (4645 Beiträge) am Sonntag, 25.Dezember.2005, 10:28.
Re: eigene suchseite findet nur in einem feld - code zusatz
Antworten
Beitrag von herbert (385 Beiträge) am Mittwoch, 28.Dezember.2005, 17:55.
Re: eigene suchseite findet nur in einem feld - code zusatz
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 28.Dezember.2005, 18:19.
Re: eigene suchseite findet nur in einem feld - code zusatz
Hallo Herbert,
hier noch ein letzter testlink:
http://baseportal.de/cgi-bin/baseportal.pl?htx=/Juergens/testherbert3
Wie geschrieben, kannst du alles mit do action=all erschlagen, ohne irgendwas anderes einzubauen.
Wenn Du das mit der VTS richtig gelesen hättest, bezieht sich das nur auf ein!! Indexfeld mit den entsprechenden Suchbegriffen.
Gruß
Claus
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 28.Dezember.2005, 18:23.
Re: eigene suchseite findet nur in einem feld - code zusatz
hatte ich noch vergessen. selbst wenn Du bei Branche den Namen von Branche2 eingibst, wird es gefunden. Frage mich jetzt nicht wieso. Keine Ahnung, hat sich nur beim testen herausgestellt.
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 28.Dezember.2005, 18:30.
Re: eigene suchseite /Schwachsinn;)
Vergiss den Beitrag, komme langsam auch schon durcheinander;)
Antworten
Beitrag von herbert (385 Beiträge) am Mittwoch, 28.Dezember.2005, 19:20.
Re: eigene suchseite /Schwachsinn;)
Hallo,
wie gesagt ich hatte auch schon die zwei-feld-abfrage bei mir drin, nur wenn ich nun ein drittes feld (ort) mitabfragen will, und setze gemeinde~=$gemeinde mit ins loop,
zerschiesst mir das
1. meine Sortierung und
2. habe ich mehere datenbankeinträge doppelt und dreifach, obwohl sie garnicht doppelt in der db stehen sondern nur beim Loop angezeigt werden.
das muss doch zu machen sein....????
Antworten
Beitrag von Claus (4645 Beiträge) am Mittwoch, 28.Dezember.2005, 19:47.
Re: eigene suchseite /Schwachsinn;)
das mit dem Schwachsinn bezog sich auf MEINEN!!! letzten Beitrag;)
letzter richtiger Beitrag von mir:
http://www.baseportal.de/baseportal/baseportal/forum&wcheck=1&Pos=12165.005
das ist getestet und da gibt es keine doppelten Beiträge und auch keine kaputte Sortierung. Das ist reinweg mit do action gemacht. Wenn Du da im Suchfeld branche eine Abfrage machst UND nach dem Ort suchst, bekommst Du auch das entsprechende ausgegeben, da in BEIDEN Feldern + Ort gesucht wird.
Ansonsten kann da wohl bei loop nur noch CB & CO helfen.
Gruß
Claus
Antworten
Beitrag von herbert (385 Beiträge) am Mittwoch, 28.Dezember.2005, 20:23.
Re: eigene suchseite und es geht doch - HURRA
Sorry claus hatte deinen letzte uberschrift übersehen.
war nicht an dich gerichtet.
Glaube ich den Fehler gefunden.
bin gerade am testen und programmieren
wenn alles klappt gebe ich morgen bericht.
gruss herbert
ps hallo ruben scheint zu funtionieren, im loop und weiterblättern geht auch.
Antworten
Beitrag von herbert (385 Beiträge) am Donnerstag, 29.Dezember.2005, 10:57.
Re: eigene suchseite ---------lösung----------*****
if ($_get{cmd} eq "all"){
$_header="Location:http://domain.de/cgi-bin/baseportal.pl?htx=/detail_de&db=datenbank&Id==$Id\n\n";
$_get{cmd}="";
}
</perl>
</head>
<perl>
{
Suche:<table cellspacing=2 cellpadding=0 border=0><tr><td></td><td><table cellpadding=0 cellspacing=0 border=0 bgcolor=99FFCC><tr><td><table border=0 cellspacing=1 cellpadding=2>
<form action="http://domain.de/cgi-bin/baseportal.pl?htx=/compass_de&db=datenbank&cmd=search" method="post" enctype="multipart/form-data"><input type=hidden name="htx=" value="/template">
-----------------------------
<tr><td align=right>Branche:</td>
<td><input type="text" name="suche_branche=" size=20 value=""></td>
<tr><td align=right>Strasse:</td>
<td><input type="text" name="suche_anschrift=" size=20 value=""></td></tr>
<tr><td align=right>PLZ:</td>
<td><input type="text" name="suche_plz=" size=20 value=""></td></tr>
<tr><td align=right>Gemeinde:</td>
<td><input type="text" name="suche_gemeinde=" size=20 value=""></td></tr>
###### wobei suche_XXXXX kein feldname ist
<tr><td></td><td nowrap><input type=submit value="Abschicken">
</td></tr></form></table></td></tr></table></td></tr></table>
##### zum blättern merken
<perl>
$merken="&suche_branche=$suche_branche" if $suche_branche;
$merken.="&branche~=$_sel{branche}" if $_sel{branche};
$merken.="&branche_2~=$_sel{branche_2}" if $_sel{branche_2};
$merken.="&branche_3~=$_sel{branche_3}" if $_sel{branche_3};
$merken.="&suche_rubrik=$suche_rubrik" if $suche_rubrik;
$merken.="&suche_plz=$suche_plz" if $suche_plz;
$merken.="&suche_gemeinde=$suche_gemeinde" if $suche_gemeinde;
$merken.="&suche_landkreis=$suche_landkreis" if $suche_landkreis;
$merken.="&suche_verbandsgemeinde=$suche_verbandsgemeinde" if $suche_verbandsgemeinde;
$merken.="&suche_umkreis=$suche_umkreis" if $suche_umkreis;
$merken.="&suche_vorwahl=$suche_vorwahl" if $suche_vorwahl;
</perl>
##### do action ohne listausgabe
<left>
<do action=all db=compass indexfield=firmenname databack=f0f0f0 datasize=2 headback=e0e0e0 border=0 spacing=1 padding=0 gridcolor=b0b0b0 dataface=arial,helvetica pagebrowse=top,bottom buttonbrowse=top input=no keyfield=firmenname language=de pagebrowse=top buttonbrowse=top listtype=- searchfields=no input=no
</left>
##### loop ausgabe
<loop db=compass sort^=-Hits range^=$v,50 branche~=$suche_branche | branche_2~=$suche_branche and firmenname~=$suche_firmenname and name~=$suche_name and rubrik==$suche_rubrik and gemeinde~=$suche_gemeinde and plz==$suche_plz and anschrift~=$suche_anschrift and landkreis==$suche_landkreis and verbandsgemeinde~=$suche_verbandsgemeinde and vorwahl~=$suche_vorwahl and umkreis==$suche_umkreis>
##### + tabelle loop
######blättern mit merken
<perl>
my $newrange=$_range+$_range_length;
my $oldrange=$_range-$_range_length;
$oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
out "<< <a href=\"$_link&range=$oldrange,$_range_length$merken\">Zurück</a> " if $oldrange>=0;
out "<a href=\"$_link&range=$newrange,$_range_length$merken\">Weiter</a> >>" if $newrange<$_amount_query;
</perl>
das isses
gruss herbert
danke für eure mühen
+ guten rutsch
Antworten
Beitrag von Claus (4645 Beiträge) am Donnerstag, 29.Dezember.2005, 18:39.
Re: eigene suchseite ---------lösung----------*****
Hallo Herbert,
versuch mal so:
-----schnipp
<perl>
if($cmd eq "do_search")
{
Suche:<table cellspacing=2 cellpadding=0 border=0><tr><td></td><td><table cellpadding=0 cellspacing=0 border=0 bgcolor=99FFCC><tr><td><table border=0 cellspacing=1 cellpadding=2>
<form action="http://domain.de/cgi-bin/baseportal.pl?htx=/compass_de&db=datenbank&cmd=search" method="post" enctype="multipart/form-data"><input type=hidden name="htx=" value="/template">
-----------------------------
<tr><td align=right>Branche:</td>
<td><input type="text" name="suche_branche=" size=20 value=""></td>
<tr><td align=right>Strasse:</td>
<td><input type="text" name="suche_anschrift=" size=20 value=""></td></tr>
<tr><td align=right>PLZ:</td>
<td><input type="text" name="suche_plz=" size=20 value=""></td></tr>
<tr><td align=right>Gemeinde:</td>
<td><input type="text" name="suche_gemeinde=" size=20 value=""></td></tr>
###### wobei suche_XXXXX kein feldname ist
<tr><td></td><td nowrap><input type=submit value="Abschicken">
</td></tr></form></table></td></tr></table></td></tr></table>
-----schnapp
........
Gruß
Claus
Antworten