Ankündigung

Einklappen
Keine Ankündigung bisher.

MYSQL Datenbankabfrage - Ausgabe

Einklappen

Neue Werbung 2019

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

  • MYSQL Datenbankabfrage - Ausgabe

    Hallo Forum,
    nachdem das Thema bestimmt schon x mal dran war, hier nur meine Bitte: sendet mit den Link dazu, bevor ich wahnsinnig werde!

    Mein Problem:
    Ich habe ein Formular mit mehreren Suchfeldern und es gelingt mir immer nur EINS von den Suchfeldern abzufragen

    DB-connect funktioniert, Ausgabe einer Zeile ja auch. Also in meinem Formular steht u.a.:
    <form action="ausgabe_bravo6069.php" method="POST">
    <td><input type="text" name="Titel" size="30"></td>

    Das SQl Statement funktioniert so:
    $Titel = $_POST['Titel'];
    $abfrage = "SELECT * FROM bravo6069 WHERE Titel='$Titel'";

    Und die Ausgabe so:
    echo "<td>". $zeile['Titel'] . "</td>";

    So weit, so gut. Jetzt habe ich aber in meinem Formular 12 Suchfelder (User hat die Möglichkeit 1 -11 Felder zur Suche einzugeben, z.B. den Song-Titel):
    $Titel = $_POST['Titel'];
    $Interpret = $_POST['Interpret'];
    $Datum = $_POST['Datum'];
    etc.

    Also, so dachte ich mir, mache ich auch 12 Abfragen...
    $abfrage = "SELECT * FROM bravo6069 WHERE Titel='$Titel'";
    $abfrage = "SELECT * FROM bravo6069 WHERE Interpret='$Interpret'";
    $abfrage = "SELECT * FROM bravo6069 WHERE Datum='$Datum'";
    etc.

    Ebenso hab ich analog, wie oben, die Ausgabe gewählt.

    Und - schwupp - bekomme ich die ganze Datenbank angezeigt
    dabei will ich doch nur den Suchbegriff aus der DB auslesen

    Kann mir eine eine Idee geben? Muss ich sagen, wenn alle anderen Suchfelder leer oder eben andersrum: such nur die Suchfelderinhalte, die gefüllt sind, oder wie??? :/
    Danke!

    VG
    Jo


  • #2
    Du könntest dir einen "Suchstring" zusammen basteln.
    Ich nehme an du kennst AND und OR bei einem SQL Statement.

    Nun könnte man die einzelnen Suchfelder auf nicht leer abfragen und somit die Suche immer um ein Feld wenn gefüllt erweitern.
    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

    Kommentar


    • #3
      Verwendung von AND und LIKE
      %$suchtext% gibt dann auch Teilergebnisse aus. ("" würde alles finden; "tel" würde z.B. Titel finden)

      Kommentar


      • #4
        Du kannst dir die Abfrage dynamisch generieren lassen. (dynamic select oder so in Verbindung mit (My)SQL findet bestimmt etwas).

        Ca. so gemeint:
        PHP-Code:
        <?php
        $fields 
        = array('Titel''Name''Datum'); // entspricht allen Formularfeldern
        $post = array('Titel' => 'Test''Datum' => '25.3.2012'); // Entspricht dem $_POST-Array, sollte eigentlich vom Formular kommen
        $queryBegin "SELECT * FROM table WHERE ";

        $where '';
        foreach (
        $fields as $field) {
            if (isset(
        $post[$field])) {
                if (
        $where != '') {
                    
        $where .= " AND ";
                }
                
        $where .= "$field = '".$post[$field]."'";
            }
        }
        $query $queryBegin $where;

        echo 
        $query;
        ?>
        Einige Dinge (wie z.B. das der Query auf Grund des alleinstehenden WHERE fehlschlägt, wenn keine Bedingungen angegeben sind) sollte man noch beheben. Das ist die IDEE und NICHT die Lösung.

        Kommentar


        • #5
          Oh ja, das klingt gut Das probiere ich mal...
          Vielen Dank!
          Jo

          Kommentar

          Lädt...
          X