Schlagwortabfrage - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Jürgen Göndör (1 Beitrag) am Mittwoch, 24.Januar.2001, 10:23.
    Schlagwortabfrage

      Ich bin vollkommen unerfahren in Datenbanken und suche Hilfe für die Schlagwortsuche in einer Datenbank mit Buch und Zeitschriftentiteln.
      wer kann mir da helfen?
      Jürgen


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Jürgen Göndör (1 Beitrag) am Mittwoch, 24.Januar.2001, 10:23.
    Schlagwortabfrage

      Ich bin vollkommen unerfahren in Datenbanken und suche Hilfe für die Schlagwortsuche in einer Datenbank mit Buch und Zeitschriftentiteln.
      wer kann mir da helfen?
      Jürgen

     Antworten

    Beitrag von Matthias (331 Beiträge) am Mittwoch, 24.Januar.2001, 11:08.
    Re: Schlagwortabfrage

      Hallo Jürgen,

      bisher funktioniert in BP noch keine Volltextsuche. Aber Du kannst Dir behelfen, indem Du in Deiner Datenbank ein Datenbankfeld anlegst, das ein Feld "Schlagwort" o.ä. enthält. Dort trägt man dann für jede Zeitschrift usw. EIN Schlagwort ein (z.B. "PC" oder "Internet").
      Dann kannst Du die Zeitschriften usw. gezielt nach bestimmten (vorher eingegebenen) Schlagworten durchsuchen und die passenden Einträge anzeigen lassen.

      Also Datenbank anlegen mit z.B. dem Namen "Zeitschriften". Ebenso ein Template (Seite) mit z.B. dem selben Namen.

      In die DB kommen die Felder:

      Titel
      Schlagwort
      Beschreibung (oder ähnliche)

      Die Abfrage im Template muss dann so aussehen:

      <loop db=Zeitschriften>
      $Titel<br>
      $Beschreibung
      <p>
      </loop>
      

      Die Variable "Schlagwort_Suche" wird z.B. von einem Formular an die Loop-Schleife übergeben.

      Formular könnte so aussehen:

      <form action="/cgi-bin/baseportal.pl?htx=/Nutzer/Zeitschriften&db=Zeitschriften" method="post" 
      enctype="multipart/form-data">
      <p><input type="text" name="Schlagwort_Suche" size="20"></p>
      <p><input type="submit" value="Abschicken" name="B1"><input type="reset" value="Zurücksetzen" name="B2"></p>
      </form>
      

      Das Formular kann in einer beliebigen WebSite eingebaut sein.

      Ablauf:
      Jemand ruft die WebSite mit dem Formular auf. Er gibt im Feld "Schlagwort_Suche" den Begriff "PC" ein. Die Variable "Schlagwort_Suche" speichert den Begriff und übergibt ihn als Anhang an den Link an das aufgerufene Template "Zeitschriften" weiter. Dort wird per Loop alles angezeigt, was im Datensatz im Feld "Schlagwort" den Eintrag "PC" hat.

      Beispiel: http://www.sanctclara.de/erwachs/index.htm
      Links im Menü den Punkt "Suchen" wählen. Hier sind zwar Dropdownmenüs verwendet, aber die Datenbankabfrage funktioniert genauso wie oben beschrieben.

      Ich hoffe, ich konnte Dir weiterhelfen, wenn Du Fragen hast, dann frag ;-)


      ------------
      P.S.
      Wenn Du mehrere Schlagworte brauchst, dann geht das meines Wissens (im Moment) nur mit Perl. Damit kannst Du Dir auch eine Volltextsuche basteln (da müssten aber andere antworten, die von Perl mehr Ahnung haben als ich)

     Antworten

    Beitrag von Jürgen (614 Beiträge) am Mittwoch, 24.Januar.2001, 11:27.
    Re: Schlagwortabfrage

      Vielen Dank für die schnelle Antwort - genau daran bin ich gescheitert - es sollten natürlich mehrere Schlagworte möglich sein.

      Aber trotzdem vielen Dank

      Liebe Grüße

      Jürgen

     Antworten

    Beitrag von Andreas (396 Beiträge) am Mittwoch, 24.Januar.2001, 13:03.
    Re: Schlagwortabfrage

      Hallo,

      Du kannst auch mehrere Schlagwörter eingeben und danach suchen lassen - allerdings nicht mehr mit 'einfacher' bp-Funktionalität, sondern nur mit Hilfe von Perl; die <loop>-Schleife könnte dann so aussehen (das Schlagwort wird in der Variablen $Schlagwort_Suche übergeben wie in Matthias' Vorschlag):

      <loop code=perl db=Zeitschriften>
      if($Schlagwort =~ /$Schlagwort_Suche/)
      {
       out "$Titel<br>$Beschreibung<p>";
      };
      </loop>
      

      Sollte tun

      Andreas

     Antworten

    Beitrag von Matthias (331 Beiträge) am Mittwoch, 24.Januar.2001, 13:59.
    Re: Schlagwortabfrage

      Andreas´ Lösung ist wohl die einfachste.

      Allerdings stehen einem nach der Abfrage nicht die einzelnen Schlagwörter als Variablen zur Verfügung (z.B. wenn man sie bei der Ausgabe nochmal nennen möchte)

      Wie müsste man vorgehen, wenn man in der Suchmaske mehrere Schlagwörter eingeben möchte? Muss ich sie dann erst aufsplitten (siehe mein Beitrag oben) und dann einzeln per

      if($schlagwort == $einzeln[x])
      

      vergleichen, oder geht das womöglich auch einfacher ?

      Gruß,
      Matthias

     Antworten

    Beitrag von Matthias (331 Beiträge) am Mittwoch, 24.Januar.2001, 13:38.
    Re: Schlagwortabfrage

      Jetzt hat michs gepackt. Habe mal in meinem Perl-Buch nachgeschlagen...

      Zunächst eine Version, die mit sechs Schlagworten klar kommt. Beliebig erweiterbar - dann aber nicht mehr ganz elegant ;-)

      Du brauchst ein Feld "schlagworte" (bei der Eingabe der Schlagwörter mit Leerzeichen trennen). In meinem Beispiel habe ich schon mal was "eingetragen" bzw. der Variablen $schlagwort Werte zugewiesen (1.Zeile nach <perl>

      Beispiel unter: http://baseportal.de/cgi-bin/baseportal.pl?htx=/Kocodi/versuch

      --------

      <perl>
      $schlagwort = 'Pc Internet Wohnen Haus Geld Liebe';
      @einzeln = split ( / / ,$schlagwort);
      </perl>
      

      Der Splitbefehl ist das entscheidende, das folgende ist nur zur Verdeutlichung, dass die Trennung funktioniert hat (müsste eigentlich auch noch vor dem </perl> stehen).

      out 'Ausgabe der Variablen $schlagwort:<br>';
      out '',$schlagwort,'<br>';
      out ' <br>';
      

      out 'Ausgabe der Einzelteile als Liste:<br>';
      out '',$einzeln[0],'<br>';
      out '',$einzeln[1],'<br>';
      out '',$einzeln[2],'<br>';
      out '',$einzeln[3],'<br>';
      out '',$einzeln[4],'<br>';
      out '',$einzeln[5],'<br>';
      

      Es fehlt eine schöne Schleife, die der Variablen $einzeln[x] solange einen neuen Wert zuweist, bis alle Eintragungen ausgelesen sind. Ich arbeite dran ... ;-)

      Gruß,
      Matthias

     Antworten


     
 Liste der Einträge von 150 bis 300:Einklappen Zur Eingabe 
Neueste Einträge << Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.14s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!