Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Suche findet nicht alles

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Suche findet nicht alles

    Hallo zusammen,

    die Frage ist vielleicht ein wenig komisch, aber ich versteh das nicht...
    Woran kann es liegen, wenn eine SQL-Suche nicht alles findet?

    Ich habe eine kleine Datenbank mit 20 Datensätzen und suche ein Wort, welches sich in der "title_alt" Spalte befindet.
    Bei dem Großteil der Wörter stimmt das Ergebnis, aber bei ein paar wenigen Wörtern findet er gar nichts. Die Wörter haben weder Umlaute oder sonst irgendwelche Sonderzeichen drin.
    Die Wörter kommen aber ganz sicher drin vor.
    PHP-Code:
    suche.php?search=haus

    $select
    "SELECT url, title, title_alt, keys FROM names WHERE title_alt LIKE '%" mysql_real_escape_string($_GET['search']) . "%' ORDER BY keys ASC"


  • #2
    Beispieldaten?

    Kommentar


    • #3
      Hier ein Beispiel:
      Code:
      url = gartenkralle
      title = Gartenkralle
      title_alt = Gartenkralle - kultiviert, lockert und belüftet jeden Gartenboden
      keys = Garten, Kralle
      Ich suche nach "gartenkralle" und finde nichts.
      Suche ich nach "kralle" und schon erscheint der Datensatz.

      EDIT: Da fällt mir gerade ein... liegt es an der Wildcard % vor dem Suchbegriff? Vor "Garten" steht ja nichts mehr oder macht das allgemein nichts aus?

      EDIT 2: So wie es aussieht, liegt es an der Wildcard, aber wie löst man das dann, dass sowohl mit Wildcard als auch ohne gesucht wird?

      Kommentar


      • #4
        Nein, sieht eher so aus, als ob es an der unterschiedlichen Groß-/Kleinschreibung liegt.

        Informiere dich, was Collations sind, und wähle eine passendere.

        Kommentar


        • #5
          Komisch die Nächste...

          Angenommen ich füge "Gartenkralle" zu einem anderen Datensatz hinzu, findet er plötzlich den anderen, eigentlichen "Gartenkralle"Datensatz, den anderen aber nicht.
          "Kralle" kommt in mehreren Datensätzen vor.
          Irgendwie scheints mir nun so, dass man Suchbegriffe nur findet, wenn sie mehr als einmal in der Datenbank sind.

          Über phpmyadmin ist das Ergebnis immer korrekt!

          Kommentar


          • #6
            Gib mal als Suchbegriff gartenkralle ein und lass dir mit echo $select ausgeben, was dein script da zusammengesetzt hat.
            PHP-Code:
            if ($var != 0) {
              
            $var 0;

            Kommentar


            • #7
              Zitat von greenslot Beitrag anzeigen
              Komisch die Nächste...

              Angenommen ich füge "Gartenkralle" zu einem anderen Datensatz hinzu, findet er plötzlich den anderen, eigentlichen "Gartenkralle"Datensatz, den anderen aber nicht.
              "Kralle" kommt in mehreren Datensätzen vor.
              Irgendwie scheints mir nun so, dass man Suchbegriffe nur findet, wenn sie mehr als einmal in der Datenbank sind.

              Über phpmyadmin ist das Ergebnis immer korrekt!
              Ehm... sieht eher so aus, als ob deine Ausgabefunktion Daten "frisst". Poste bitte den relevanten Code...
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Zitat von lstegelitz Beitrag anzeigen
                Ehm... sieht eher so aus, als ob deine Ausgabefunktion Daten "frisst". Poste bitte den relevanten Code...
                Da hast du allerdings recht!

                Peinliche Angelegenheit, aber ich hatte $dataset = mysql_fetch_assoc($result); doppelt drin.
                Das habe ich eben beim Suchen nach relevantem Code gefunden.

                Danke an alle für euche Antworten!

                Kommentar

                Lädt...
                X