Sabine: Suche

Hallo

ich habe ein tolles Such-Skript auf meiner Site eingebaut, nur mußte ich gerade festellen, daß es nur die php Dateien durchsucht. Mein Ziel ist es aber, mit einem Such-Skript auch die Datenbanken zu durchforsten. Wie mache ich das? Gibt es schon fertige Scripte (ich weiß, daß ist hier verpönt, aber es ist schneller)?

Grüße,

Sabine

  1. Hallo Sabine

    Mein Ziel ist es aber, mit einem Such-Skript auch die Datenbanken zu durchforsten. Wie mache ich das? Gibt es schon fertige Scripte

    Es gibt so etwas. Aber nicht, wie Du Dir das vorstellst, sondern ähnlich wie Sven Dir den geeigneten Datentyp für Datums- und Zeitangaben schmackhaft machen wollte - und hoffentlich langfristig Erfolg hat.

    Sehr viele Datenbankmanagementsystem bieten das Feature der Volltextsuche. Da ich aus Deinem letzten Thread weiß, dass Du MySQL verwendest (bitte stets angeben, was Du verwendest), kann ich Dir sagen, dass Dein DBMS dies ebenfalls unterstützt. Du kannst dies im Handbuchkapitel Fulltext-search nachlesen.

    (ich weiß, daß ist hier verpönt, aber es ist schneller)?

    Volltextsuche kann superschnell sein *g*

    Freundliche Grüße

    Vinzenz

    1. Hallo Vinzenz

      Es gibt so etwas. Aber nicht, wie Du Dir das vorstellst, sondern ähnlich wie Sven Dir den geeigneten Datentyp für Datums- und Zeitangaben schmackhaft machen wollte - und hoffentlich langfristig Erfolg hat.

      Ich habe es ja schon mal versucht mit dem date Format, doch bin ich an der Formatänderung gescheitert. Ich wollte gerne als Ausgabe tt.mm.jjjj.
      Daher mache ich es nun in drei Spalten.

      Du kannst dies im Handbuchkapitel Fulltext-search nachlesen.

      Ich versuche es mal mich dadurch zu lesen. Bei Fragen komme ich auf Dich zurück ;-)

      Viele Grüße,

      Sabine

  2. Hallo Vinzenz,

    in dem Handbuch wird ja beschrieben, wie ich eine Datenbank nach einem Wort durchsuche. Aber ich möchte gerne einen Verweis auf meine php-Seite haben.

    Am besten wätre es, DU schaust es Dir mal an, was ich meine. Du findest mein Problem auf der Site http://www.volkmarklein.de/test

    Wenn ich nun die Suche aktiviere, werden die php-Seiten durchsucht.
    Die Pressemitteilungen sind aber in einer Datenbank und ich möchte gerne , wenn die Suche durch ist, einen Verweis auf z.B. die Seite

    http://www.volkmarklein.de/test/selectausgabe.php?auswahl=30

    als Ergebnis ausgespuckt haben. Wie schaffe ich es aber, daß die Adresse dann auch angegeben wird?

    Viele Grüße,

    Sabine

  3. Hallo Vinzenz,

    in dem Handbuch wird ja beschrieben, wie ich eine Datenbank nach einem Wort durchsuche. Aber ich möchte gerne einen Verweis auf meine php-Seite haben.

    Am besten wätre es, DU schaust es Dir mal an, was ich meine. Du findest mein Problem auf der Site http://www.volkmarklein.de/test

    Wenn ich nun die Suche aktiviere, werden die php-Seiten durchsucht.
    Die Pressemitteilungen sind aber in einer Datenbank und ich möchte gerne , wenn die Suche durch ist, einen Verweis auf z.B. die Seite

    http://www.volkmarklein.de/test/selectausgabe.php?auswahl=30

    als Ergebnis ausgespuckt haben. Wie schaffe ich es aber, daß die Adresse dann auch angegeben wird?

    Viele Grüße,

    Sabine

  4. Hallo

    kann mir vielleicht jemand helfen.....?

    Ich möchte eine Volltextsuche machen in einer mysql -Datenbank. Dafür habe ich beispielweise folgendes geschrieben

    $sql="SELECT newsid FROM $dbtabelle WHERE MATCH (newsinhalt) AGAINST ('Schule')";
    echo $sql;
    $satz = mysql_query($sql) or mysql_error();
         while($row = mysql_fetch_array($satz))
    {
              extract($row);
         echo " http.www.volkmarklein.de/test/selectausgabe.php?auswahl=$sql ";

    };

    Also, es soll nach Schule gesucht werden.

    Als Fehlermeldung bekomme ich aber

    SELECT newsid FROM newstab WHERE MATCH (newsinhalt) AGAINST ('Schule')
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\php\xampp\htdocs\Volkmar\Test\test.php on line 12

    Line 12 ist die Zeile mit while....

    Wo liegt mal wieder mein Fehler. Für Hilfe wäre ich dankbar

    Viele Grüße,

    Sabine

    1. Hallo Sabine

      Ich möchte eine Volltextsuche machen in einer mysql -Datenbank. Dafür habe ich beispielweise folgendes geschrieben

      Schön der Reihe nach:
      Du hast also Deiner Tabelle newstab einen Volltextindex für die Spalte newsinhalt hinzugefügt?

      Wenn ja, prima.
      Wenn nein, dann musst Du dies noch tun. Dazu kannst Du ALTER TABLE verwenden.

      $sql="SELECT newsid FROM $dbtabelle WHERE MATCH (newsinhalt) AGAINST ('Schule')";
      echo $sql;
      $satz = mysql_query($sql) or mysql_error();

      Hab' ich Dir diese Schreibweise empfohlen. Wenn ja, dann sollte ich mich in die Ecke stellen und schämen :-(

      Was weist Du der Variablen $satz zu?

      Wenn die query erfolgreich ist, dann die zurückgelieferte Ressource, da der Zuweisungsoperator = einen höheren Rang hat als der or-Operator, siehe auch PHP-Handbuch, Operator-Rangfolge.

      Wenn schon, dann ein ganz klein wenig besser:

      $satz = mysql_query($sql) or die(mysql_error());

      Noch besser

      $satz = mysql_query($sql);
          if (!$satz) {
              // Gebe die SQL-Anweisung und die MySQL-Fehlermeldung aus
              // Beende das Skript
              die("SQL-Anweisung: $sql<br>\nMySQL-Fehlermeldung: " .
                       mysql_error() . "<br>\n");
          }
          while ($row = mysql_fetch_array($satz)) {
              // ...

      Das Skript abzubrechen ist für den Produktiveinsatz (vorsichtig ausgedrückt) unschön, aber für den ersten Ansatz sollte es reichen.

      Was Du tun kannst, ist Deine Abfrage direkt an MySQL zu reichen. Dazu kannst Du entweder den Kommandozeilenclient verwenden oder phpMyAdmin, falls das zur Verfügung steht. Kannst Du das nur auf dem Webserver austesten, ist das natürlich ungünstig. Für solche Zwecke ist eine Testumgebung zu Hause sehr praktisch.

      Also, es soll nach Schule gesucht werden.

      Ja schon klar.

      Freundliche Grüße

      Vinzenz

      1. Hallo Vinzenz,

        ich bin schon weitergekommen. Nun habe ich eine Suche für die Datenbank und eine für den Server. Das Ergebnis möchte ich nun verknüpfen und da hapert es im Moment etwas bei mir. Ich hatte nämlich ein prima fertiges und funktionierendes Suchskript für den Server, aber dann kam die Datenbank...
        Die Suche habe ich übrigens mit

        $sql="SELECT * FROM $dbtabelle WHERE newsinhalt like '%$suchtext%' ";

        dem Befehl gemacht und das hat auch geklappt.

        Wie würdest Du denn eine Suche auf Server und Datenbank zusammen programmieren?

        Viele Grüße,

        Sabine

        1. Hallo

          ich bekomme die Verknüpfung der Suchen auf Server und Datenbank nicht wirklich verknüpft. DIe Ergebnisanzeige sieht besch.. aus. Wie machen es die Profis? Gibt es einen Trick oder ein Skript, wie ich es machen kann?

          Für Hilfe wäre ich wirklich dankbar

          Sabine

          1. Hallo Sabine

            Die Suche habe ich übrigens mit
            $sql="SELECT * FROM $dbtabelle WHERE newsinhalt like '%$suchtext%' ";
            dem Befehl gemacht und das hat auch geklappt.

            das ist keine Volltextsuche. Diese Suche ist sehr aufwendig, wegen dem %-Zeichen vorne, übertrieben ausgedrückt muss der Text Zeichen für Zeichen durchsucht werden. Christoph Zurnieden hat interessante Details zum Aufbau einer Suchmaschine herausgestellt, die Dich ebenfalls interessieren sollten. (Das Posting ist leichter verdaulich als die zuletzt von mir verlinkte Kost.)

            Wie würdest Du denn eine Suche auf Server und Datenbank zusammen programmieren?
            ich bekomme die Verknüpfung der Suchen auf Server und Datenbank nicht wirklich verknüpft.

            DIe Ergebnisanzeige sieht besch.. aus.

            So schlimm ist es doch nicht.

            Wie machen es die Profis?

            Wie wäre es mit folgendem Vorbild, der SelfSuche? Kannst Du Dir da vielleicht etwas abschauen.

            Gibt es einen Trick oder ein Skript, wie ich es machen kann?

            Dieter war der Ansicht, Du solltest Dir mal die Sachen von Reiner ansehen.

            Eine Frage zum Abschluss: Deine SQL-Anweisung für die Volltextsuche sah ja soweit ok aus. Hast Du herausbekommen, warum sie Dir nicht das Gewünschte lieferte?

            Freundliche Grüße

            Vinzenz

            1. Hallo

              Wie wäre es mit folgendem Vorbild, der SelfSuche? Kannst Du Dir da vielleicht etwas abschauen.

              Ja, das Skript ist ja prima, aber liest es auch aus DB und vom Server? Außerdem weiß ich nicht, wie ich es mir kopieren soll :-((

              Eine Frage zum Abschluss: Deine SQL-Anweisung für die Volltextsuche sah ja soweit ok aus. Hast Du herausbekommen, warum sie Dir nicht das Gewünschte lieferte?

              Ich war so intelligent und habe "alter table " nicht beachtet.

              Jetzt habe ich meine php Server Suche und die DB-Suche mit % so zusammengebaut, daß ich nur noch "Kleinigkeiten" (hoffe ich) ändern muß, damit dann das Format stimmt. Mein Problem ist, daß die Zeit langsam drängt, denn ich bin seit 2,5 Monaten dabei, die HP zu erneuern und ich muß nun erstmal fertig werden. Wenn alles steht, kann ich die Suche auch noch optimieren - das sieht ja der User nicht. Außerdem bin ich langsam auch genervt von der Site - man sitzt ständig daran und findet erstmal kein Ende.

              Viele Grüße,

              Sabine

              1. Hallo Sabine

                Wie wäre es mit folgendem Vorbild, der SelfSuche? Kannst Du Dir da vielleicht etwas abschauen.

                Mir ist doch glatt ein Fehler bei der Verlinkung unterlaufen, das sollte http://suche.de.selfhtml.org/ heissen.

                Ja, das Skript ist ja prima, aber liest es auch aus DB und vom Server? Außerdem weiß ich nicht, wie ich es mir kopieren soll :-((

                Es geht doch nicht darum, ob es aus einer Datenbank und vom Server (was immer das auch ist) liest. Zumindest habe ich Dich nicht so verstanden, außerdem kannst Du das doch schon. Ich habe Dich so verstanden, dass Dir Deine Darstellung mißfällt, was ich nicht ganz nachvollziehen kann. Das sieht doch ganz ordentlich aus.

                Ich zitiere aus Deinem vorletzten Posting:

                Die Ergebnisanzeige sieht besch.. aus.

                Für mich heißt das: Die Darstellung gefällt mir nicht.
                Habe ich das falsch verstanden?

                Schau Dir die Sucheseite von SelfHTML im Detail an, nutze sie auch :-) Du kannst aus mehreren Kategorien wählen, z.B. Suche nach window.open in verschiedenen Bereichen. Schau Dir die Ergebnisdarstellung an. Ich finde das gelungen und übersichtlich. Soviel anders ist Deine Darstellung doch auch nicht. Du unterscheidest zwischen den Webseiten und der Datenbanksuche in den Pressemitteilungen. Ist doch ok.

                Eine Frage zum Abschluss: Deine SQL-Anweisung für die Volltextsuche sah ja soweit ok aus. Hast Du herausbekommen, warum sie Dir nicht das Gewünschte lieferte?

                Ich war so intelligent und habe "alter table " nicht beachtet.

                Dann führe das doch durch und ersetze Deine %Suchwort% spasseshalber durch MATCH ... AGAINST ... und überprüfe, ob Dir das Ergebnis besser gefällt. Du profitierst von der Stopwortliste.

                Jetzt habe ich meine php Server Suche und die DB-Suche mit % so zusammengebaut, daß ich nur noch "Kleinigkeiten" (hoffe ich) ändern muß, damit dann das Format stimmt. Mein Problem ist, daß die Zeit langsam drängt, denn ich bin seit 2,5 Monaten dabei, die HP zu erneuern und ich muß nun erstmal fertig werden.

                Das kenne ich.

                Wenn alles steht, kann ich die Suche auch noch optimieren - das sieht ja der User nicht. Außerdem bin ich langsam auch genervt von der Site - man sitzt ständig daran und findet erstmal kein Ende.

                Das auch :-)

                Freundliche Grüße

                Vinzenz

                1. Hallo Vinzenz

                  fürs erste bin ich mit der Suche fertig. Wenn ich mal ganz viel Zeit und Langeweile habe, ändere ich auch noch das Programm. Bis dahin kann es erstmal so bleiben.

                  Jetzt noch bei der Terminabfrage was ändern, noch ein paar Bilder   und Texte vom Chef (wenn er sie geschrieben hat) einbauen und dann steht das Ding endlich. Juchhuu!!

                  Vielen Dank nochmal und viele Grüße,

                  Sabine