MySQL DB mit PHP durchsuchen!

  • Hallo zusammen!


    Ich möchte meine MySql Tabelle 'kunden' mit einem Suchbegriff durchsuchen lassen.
    Dafür habe ich ein Such-Formular erstellt:(such.htm)
    <html>
    <head>
    <title>Datenbank Suchfunktion</title>
    </head>
    <body>


    <p>Datenbank Suchfunktion!</p>
    <form method="POST" action="suchen.php">
    <p>Bitte nur den Suchbegriff hier eingeben!<br>
    <input type="text" name="suchbegriff" size="20"></p>
    <p><input type="submit" value="Absenden" name="Absenden"></p>
    </form>
    </body>
    </html>


    Die suchen.php sieht bei mir derzeit so aus:
    <head>
    <title>Gefundene Daten ausgeben</title>
    </head>


    <body>
    <?php
    $db_host = "localhost";
    $db_user = "root";
    $db_pass = "*******";
    $db_name = "kunden";


    $suche = $_POST['suchbegriff'];
    // Verbindung oeffnen und Datenbank ausweahlen
    $conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
    if ($conID)
    {
    mysql_select_db( $db_name, $conID );
    }


    $daten = mysql_query('SELECT * FROM `kunden` WHERE `vorname`=\''.$suche.'\'' , $conID);
    while($row=mysql_fetch_array($daten))
    {
    echo $row['vorname'];
    }
    ?>
    </body>
    </html>


    Fazit: Es funktioniert.
    Problem: Ich habe mehr als nur eine Tabellenspalte (vorname). Also noch Nachname, Anschrift, PLZ, Ort etc. Ich würde gerne mit dem eingegebenen Suchwort im Formualrfeld gerne alle Tabellenspalten durchsuchen lassen und nicht nur 'vorname'. Leider weiss ich eben nicht wie ich das in der SELECT Anweisung dem entsprechend zusammen stellen kann!? Wenn ich z.B. 80541 als PLZ in das Suchformular eingebe soll es in der DB gefunden und ausgegeben werden. Die Begriffsuche soll eben genau sein und nicht nur ungefähr. Währe super lieb, wenn Ihr mir helfen könntet. Danke!

  • WHERE feld = 'bla' OR anderesfeld = 'tralala' OR drittesfeld = 'hossa' ... :D

    My software never has bugs. It just develops random features ... :D
    [FONT="System"]&#63743;
    » DevShack - die Website des freien Webentwicklers Boris ;)

  • Du könntest dir auch LIKE an schauen.


    Beispiel

    SQL
    1. SELECT * FROM `kunden` WHERE `vorname` LIKE'%blabla%'


    Es wird nach allem gesucht wohin blabla enthalten ist.


    also wird auch "Ich schreibe nur blabla in diesem Forum" gefunden (Wenn es sich den in der Spalte vorname befindet)


    gn8


    Rafael

    sizeof(void)

  • Danke Leute, aber es funktioniert nicht. Eure Anntworten sind auch nur unverständliche Fragmente. Ein wenig Programmier Code und dann sofort probiermal. Ich bin leider Anfäger und brauche doch mehr auskommentierte Befehlszeilen. Ich will mittels einem Formualrfeld meine gesamte DB nach dem eingegebenen Begriff durchsuchen u. ausgeben lassen. Ich weiss nicht genau wie ich mit der Variable aus dem Formualrfeld umzugehen habe. Wie ich die Variable mit der Select Anweisung verbinden kann, so das er eben die Felder aus der DB mit dem eingegebenen Begriff vergleicht. Wie müsste ich diese Zeile genau abändern damit alles durchsucht wird?:
    $daten = mysql_query('SELECT * FROM `kunden` WHERE vorname`=\''.$suche.'\'' , $conID);
    Bitte nochmals freundlichst um Hilfe oder andere Vorschläge.

  • Tzzz, na also ... nicht so einfach aufgeben, man lernt immer besser, wenn man erst fummelt :D

    My software never has bugs. It just develops random features ... :D
    [FONT="System"]&#63743;
    » DevShack - die Website des freien Webentwicklers Boris ;)

  • Ich weiß, dass der Thread schon sehr alt ist, aber trotzdem die Frage:
    Wie könnte man in der SQL Bedingung, in z.B. seiner Suche, sagen, dass alle Einträge, die auch nur einen Teil des Suchbegriffes enthalten gezeigt werden. Denn: Wenn ein Eintrag beispielsweise Gaststätte ist, ich gebe aber in die Suche nur Gastst ein, dann zeigt es mir den Eintrag nicht an, wie kann ich das ändern??:rolleyes::rolleyes: