Re: Suche in Checkbox-Ausgabe - 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 Claus (4645 Beiträge) am Sonntag, 29.Januar.2006, 14:52.
    Re: Suche in Checkbox-Ausgabe

      Da sich die Einträge wohl gerade gekreuzt haben, habe ich jetzt mal auf Deinen Link geklickt.

      1. Füge mal zwischen <head> und </head> folgendes ein, da sonst die Umlaute im Browser(Firefox) als Karos usw. angezeigt werden:

      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      


      2. Versuche mal, 2x hintereinander nach dem Wort "über" zu suchen.
      beim 1. Versuch werden noch Einträge angezeigt, beim 2. Versuch...schau mal selbst.....

      Gruß

      Claus


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Gabi (10 Beiträge) am Samstag, 28.Januar.2006, 18:50.
    Suche in Checkbox-Ausgabe

      Hallo!
      Hat jemand eine Idee, wie ich die Ausgabe einer Checkbox durchsuchen lassen kann? Ich hab die Volltextsuche von H.Fehde in meine Seiten gebastelt, und er kann in allen möglichen Feldern suchen, aber nicht in der Checkbox "Test".

      Also ich schreibe rein, Ausgabe wenn markiert: test123

      Und wenn ich diese Checkbox bei einem Datensatz markiere und nach test123 suche, findet er nix.

      {if ((index($Abstract,$Such)>= 0 or ($Abstract =~ /$mSuch/gim) or ($Autor =~ /$mSuch/gim) or ($Jahr =~ /$mSuch/gim) or ($Titel =~ /$mSuch/gim) or ($Journal =~ /$mSuch/gim) or ($Ausgabe =~ /$mSuch/gim) or ($Seite =~ /$mSuch/gim) or ($Test =~ /$mSuch/gim)))
      {$i++;
      

      $Daten[$i]="$i.<a href='http://baseportal.de/cgi-bin/baseportal.pl?
      Such=$Such&view=on&htx=$htx&Id==$_id'>$Autor $Jahr $Titel</a><br>";
      #----------- als Link wird das Feld [Autor, Jahr und Titel] ausgegeben ----------------------
      

      }

      Kann mir da jemand helfen?
      Die Frage, ob es denn unbedingt eine Checkbox sein muss und kein normales Textfeld muss ich mit ja beantworten, weil ich sonst bei der Dateneingabe alles tausenmal schreiben muss und mit der Checkbox mach ich halt einfach klick und fertig. Ein Optionsfelds scheidet auch aus, weil schon zu viele Daten erfasst wurden und ich die Checkboxen nicht umwandeln kann/will (hab's mit einer probiert und es kam Katastrophales raus...).

      Gruß
      Gabi

     Antworten

    Beitrag von richard (1187 Beiträge) am Samstag, 28.Januar.2006, 20:10.
    Re: Suche in Checkbox-Ausgabe

      Du mußt nach der Zahl 1 suchen und nicht nach dem Ausgabetext.

     Antworten

    Beitrag von Gabi (10 Beiträge) am Samstag, 28.Januar.2006, 23:17.
    Re: Suche in Checkbox-Ausgabe

      Hmm. Ich weiß nicht, ob das geht. Der Benutzer hat bei der Datenbank nur das Suchfeld für die Volltextsuche zur Verfügung. Er hat nicht die Möglichkeit irgendwo auszuwählen.
      Wie soll das denn als Code aussehen wenn er prüfen soll, ob der Suchbegriff dem Wert 1(also markiert) der Checkbox "Test" entspricht oder nicht?

      Ich hab leider keine Idee...

      Gabi

     Antworten

    Beitrag von richard (1187 Beiträge) am Sonntag, 29.Januar.2006, 11:03.
    Re: Suche in Checkbox-Ausgabe

      Du kannst jedenfalls nicht nach dem Ausgangstext suchen, es muß also eine andere Lösung her.

      Ich kenne allerdings die Volltextsuche nicht, Du wirst also vielleicht ein bißchen basteln und probieren müssen.

      Man könnte versuchen vor der Volltextsuche den Wert von $Test soweit dieser 1 ist mit dem Ausgabetext zu überschreiben, also


       if ($test == 1)  {$Test = "DeinAusgabetext";}
      


      Das müßte dann nach dem Holen des Datensatzes und vor der Suchroutine eingebaut werden.


      Ist natürlich ein bißchen Flickschusterei, sollte aber grundsätzlich funktionieren. Vielleicht hat aber auch jemand eine bessere Lösung für diesen Fall.

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Sonntag, 29.Januar.2006, 11:53.
    Re: Suche in Checkbox-Ausgabe

      Wenn ich mir deinen codeschnipsel ansehe, dann schwant mir böses. :)
      Kann es ein das du nicht die Volltextsuche benutzt sondern alle Datensätze holst und dann selbst mit regex in den Feldern suchst.

      if ((index($Abstract,$Such)>= 0 or ($Abstract =~ /$mSuch/gim) or ($Autor =~ /$mSuch/gim) or ($Jahr =~ /$mSuch/gim) or ($Titel =~ /$mSuch/gim) or ($Journal =~ /$mSuch/gim) or ($Ausgabe =~ /$mSuch/gim) or ($Seite =~ /$mSuch/gim) or ($Test =~ /$mSuch/gim)))
      

      Nun dann ist einfach or ($Test == 1 and "test123" =~ /$mSuch/gim) denn du weisst ja was dein Checkbox feld für nen Wert hat. Bezw. viel besser gleich nur die datensätze holen die zutreffen.
      $sel = "&Test==1" "test123" =~ /$mSuch/;
      get "Deinebfrage$sel","datenabank", # ich weiss nicht kann auch sein das du loop benutzt;
      

      Ich möchte dir aber ans Herz legen mal zu überprüfen ob du zum einem überhaupt ne Volltextsuche brauchst Autor Jahr Titel das sind alles sachen die sich auch wunderbar auf index suchen lassen. Bzw wenn es schon sein muss dann die eingebaute volltext suche nutzen. http://baseportal.de/bpws_doku.html#a23

      So wie es momentan zu sein scheint ist es ein totaler ressourcen fresser und ich kann dir garantiern das du probleme bekommst sobald die datenbank mal etwas grösser wird.

     Antworten

    Beitrag von Gabi (10 Beiträge) am Sonntag, 29.Januar.2006, 13:47.
    Re: Suche in Checkbox-Ausgabe

      Also erstmal Danke für die Antworten! Leider geht's so auch nicht. Also ich hab von der programmierung nicht so die Ahnung. Ich hab das Script von Fehde genommen und entsprechend angepasst (war schon froh, dass ich das hingekriegt hab ;))

      Also die Datenbank soll tatsächlich groß werden (mehrere 1000 Datensätze). Ist denn dann die verwendete Methode ungünstig? Ich war so froh, dass es funktioniert... Derzeit sind fast 500 Datensätze erfasst und es klappt ganz gut siehe http://baseportal.de/cgi-bin/baseportal.pl?htx=/gdadade/Rabenvogel
      Inzwischen bastel ich noch an der erweiterten Suche, wo man nur nach Autor, Titel oder Journal sucht.

      Das mit den Checkboxen ist nicht so schlimm, wenn's nicht klappt. Da ging's mir nur drum, dass man zu einer bestimmten Art alle Datensätze findet. Diese speziellen Literaturlisten hab ich aber noch anderweitig zur Verfügung gestellt. Aber wär natürlich schon schöner :)
      Anbei mal der ganze Code für die Suche:


      <!----- komplexe Volltext-Suche über "include scr=suchen"---------->
      <font size=2 face=arial,helvetica>
      <form action="baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data">
      

      <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr>
      <td><div align="center"><center><font size="4" face="Arial"><b>Hier kannst Du die gesamte Rabenvogel-Literaturdatenbank nach einem beliebigen Text durchsuchen</td></b></font></tr>
      <perl>init "Rabenvogel"</perl>
      <tr>
      <td><div align="center"><center><font size="2" face="Arial"><b>Derzeit sind $_amount_all Datensätze verfügbar.</td></tr>
      <tr>
      <td><div align="center"><center><font size="2" face="Arial"><b>Full text search in the Corvids Literature Database. At present $_amount_all records available.<p></td></tr>
      <tr align="center">
      <td> <font size="2" face="arial,helvetica">
      <input type="text" name="Such=" size="10" value=""></font></td></tr>
      

      <tr align="center">
      <td> <font size="2" face="arial,helvetica">
      <div align="center"><center><p></font>
      <input type="submit" value="Suchen/Search"></td></tr>
      </table>
      </form>
      

      <font size="2" face="arial">
      <perl>
      my @Daten;
      

      if ($Such ne "") #---------------------falls eine Suchanfrage gestartet wurde
      #---------------- und das Eingabefeld [Such] nicht leer ist
      {
      out "Suchbegriff/Search key =<b>[$Such]</b><br>";
      my $i=0;
      #--------------- Eingabe von ae, ue oder oe abfangen, z.B. "Moeglich" -----
      $mSuch = $Such;
      $mSuch =~ s/ä/Ä/g;
      $mSuch =~ s/ö/Ö/g;
      $mSuch =~ s/ü/Ü/g;
      $mSuch=lc($mSuch);
      $mSuch =~ s/ae/ä/g;
      $mSuch =~ s/oe/ö/g;
      $mSuch =~ s/ue/ü/g;
      get "Autor==*";
      while(get_next)
      #----------- gesucht wird in dem Feld [Abstract] ----------------------------------
      {if ((index($Abstract,$Such)>= 0 or ($Abstract =~ /$mSuch/gim) or ($Autor =~ /$mSuch/gim) or ($Jahr =~ /$mSuch/gim) or ($Titel =~ /$mSuch/gim) or ($Journal =~ /$mSuch/gim) or ($Ausgabe =~ /$mSuch/gim) or ($Seite =~ /$mSuch/gim) ($Test =~ /$mSuch/gim)))
      {$i++;
      

      $Daten[$i]="$i.<a href='http://baseportal.de/cgi-bin/baseportal.pl?
      Such=$Such&view=on&htx=$htx&Id==$_id'>$Autor $Jahr $Titel</a><br>";
      #----------- als Link wird das Feld [Autor, Jahr und Titel] ausgegeben ----------------------
      

      }
      }
      out "Treffer/Hits: $i - ";
      $treffer = $i > 0 ? "Wähle nachfolgend aus/Choose subsequently:" : "Leider KEIN Treffer";
      out "<b>$treffer</b><br>";
      out "@Daten";
      }
      

      "";
      </perl>
      </font>
      


      Gabi

     Antworten

    Beitrag von Claus (4645 Beiträge) am Sonntag, 29.Januar.2006, 14:52.
    Re: Suche in Checkbox-Ausgabe

      Da sich die Einträge wohl gerade gekreuzt haben, habe ich jetzt mal auf Deinen Link geklickt.

      1. Füge mal zwischen <head> und </head> folgendes ein, da sonst die Umlaute im Browser(Firefox) als Karos usw. angezeigt werden:

      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      


      2. Versuche mal, 2x hintereinander nach dem Wort "über" zu suchen.
      beim 1. Versuch werden noch Einträge angezeigt, beim 2. Versuch...schau mal selbst.....

      Gruß

      Claus

     Antworten

    Beitrag von Claus (4645 Beiträge) am Sonntag, 29.Januar.2006, 14:00.
    Re: Suche in Checkbox-Ausgabe

      eigentlich haben Richard und Pouraga das meiste schon erklärt.

      Habe aber das Gefühl, daß Du die Volltextsuche über ein index-Feld etwas falsch verstanden hast.

      Im Gegensatz zur baseportal-Volltextsuche(geht nur bei Miete/Lizenz), welche die gesamten Text-Felder einer Datenbank durchsucht, wird hier normalerweise auf 1 oder bei Bedarf auch auf 2 Felder zugegriffen.

      Man kann bei der Eingabe von neuen Datensätzen bestimmte Inhalte aus den einzelnen Datenfeldern gesammelt z.B. an ein extra TEXT-Feld übergeben bzw. dort direkt Stichworte eingeben und diese dann auf diese Art abfragen.

      Um das zu realisieren sollte man allerdings erst einmal Kenntnisse über das Verhalten bei Eingaben und in der Programmierung in Perl haben.
      Beides scheint mir bei Dir (noch) nicht gegeben.

      Die Doku und dort angegebene, weiterführende Links (selfhtml usw.) und das Forum bieten in dieser Hinsicht viele Informationen, Beispiele und Anregungen.

      Gruß

      Claus

     Antworten

    Beitrag von Gabi (10 Beiträge) am Sonntag, 29.Januar.2006, 15:42.
    Re: Suche in Checkbox-Ausgabe

      Danke für den Tip wegen "über"! Das funktioniert jetzt. Komischerweise findet er bei "Krähe" kaum was und bei "kraehe" alles, was eigentlich als "krähe" erfasst wurde. Also irgendwas stimmt da noch nicht.
      Ich weiß, dass ich noch ein blutiger Anfänger bin in Sachen Programmierung. Aber ich lerne neue Sachen immer am besten, wenn ich sie direkt anwenden muss.
      Ich werd jedenfalls fleißig weiter tüfteln und ausprobieren, mehr als schiefgehen kann's ja nicht ;) Selfhtml hab ich auch schon entdeckt und im Forum und der Dokumentation such ich auch oft. Werd mir am besten mal ein Pearl-Buch ausleihen, vielleicht gehen mir dann ein paar Lichter auf :)

      So wie die Suche momentan funktioniert, find ich's aber schonmal gut und die Feinarbeiten (Blättern etc.) krieg ich hoffentlich auch noch hin und das mit den Checkboxen ist wie gesagt nicht so schlimm.

      Danke! und Gruß Gabi

     Antworten

    Beitrag von Claus (4645 Beiträge) am Sonntag, 29.Januar.2006, 16:18.
    Re: Suche in Checkbox-Ausgabe

      >Komischerweise findet er bei "Krähe" kaum was und bei "kraehe" alles, was eigentlich als "krähe" erfasst wurde. Also irgendwas stimmt da noch nicht.
      

      Das liegt daran, daß Du hier:

      $mSuch = $Such;
      $mSuch =~ s/ä/Ä/g;
      $mSuch =~ s/ö/Ö/g;
      $mSuch =~ s/ü/Ü/g;
      

      ALLES in Großbuchstaben umwandelst;-)

      Kommst Du aber auch noch hinter, wie man das macht. Lese einfach meinen 1. Beitrag, von wegen 1 oder!! 2 Felder;-))

      Wie hat Till mal so schön geschrieben:

      Das Forum dient als Hilfe zur Selbsthilfe;-))

      Gruß

      Claus

     Antworten


     
 Liste der Einträge von 20251 bis 20401:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 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.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!