MySQL Spalte und Zeile auslesen



  • Ich hab eine MySQL DB und lese diese mit PHP aus. Und ich suche in der DB nach EINEM Suchwort, das in einer Spalte steht. Jetzt will ich aber um die Suche allgemeiner zu machen, mehrere Suchworte angeben, aber leider wird der Datensatz nur ausgewählt, wenn alle Wörter vorhanden sind.
    Also wollte ich wissen, wie man das irgendwie splitten kann und nach jedem Wort einzeln suchen kann.
    Danke für die Hilfe
    MFG



  • mach statt and einfach or
    mysql_query("SLEECT * FROm user WHERE nickname='suchwort[1]' or loginname='suchwort[2]'");



  • Ich glaube da habe ich mich etwas falsch ausgedrückt.
    Ich hab eine Spalte die heißt Suchkriterien. Da sind halt alle Suchwörter drin. Aber wenn ich denn
    mysql_query("SELECT * FROM Tabelle WHERE Suchkriterien=$suchwort");
    Aber denn muss der Text, der in der Spalte steht ja deckungsgleich mit dem Text sein, den der Benutzer eingibt. Aber es soll ja nur geprüft werden ob irgendeins von den Worten, die in der Spalte Suchkriterien für einen Datensatz deckungsgleich ist.
    Beispiel:
    Ich hab den Datensatz A. Als Kriterien stehen in der Spalte "lol, blubb, blah".
    So. Nun gebe ich etwas ein. Der Datensatz wird ja aber nur angezeigt wenn ich genau "lol, blubb, blah" einegebe und nich wenn ich "lol" oder ein anderes Wort eingebe.
    Ich hoffe du hast das jetzt irgendwie verstanden 🙂



  • Mit LIKE '%suchebgriff%'

    hier wird alles gesucht was suchbegriff hat egal was davor und danach kommt.



  • Denk dabei aber noch daran, deine Spalte mit Suchbegriffen ggf. mit einem Volltextindex zu belegen, falls möglich!



  • OK danke das hat geklappt aber ich hab jetzt noch 2 weitere Fragen.
    Wie kann ich den letzten Datensatz auslesen wenn ich nicht weiß, wie viel ich in der DB habe?

    Und könnt ihr mal den SQL Befehl auf syntaktische Fehler prüfen? Ich bin mir nämlich nicht ganz sicher, ob der richtig ist.

    $sql_string = 'INSERT INTO `suche` (`ID`, `Name`, `Kriterien`, `Link`, `Foto`) VALUES (\'61\', \$daten[2], \$daten[2], \$link, \'\')';
    

    Ich hoffe der ist so irgendwie richtig.
    MFG und Danke



  • $sql_string = "INSERT INTO suche (ID, `Name`, Kriterien, Link) VALUES (61, '$daten[2]', '$daten[2]', '$link')";
    

    Den letzten Datensatz könntest du so erhalten:

    SELECT * FROM suche ORDER BY id DESC LIMIT 1
    

Anmelden zum Antworten