Abfrage via DropDown filtern

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

  • Abfrage via DropDown filtern

    Hi!

    Ich möchte mit einem DropDown eine Sql-Abfrage filtern, jedoch geht mein Script noch nicht ordentlich.
    Das DropDown und die Abfrage ist vorhanden, jedoch fehlt irgendwie noch Verknüpfung zw. DropDown und Abfrage.

    In einem weiteren Step möchte ich zum einem eine ständige Aktualisierung der Abfrage, welche die HTML-Tabelle erzeugt, zum anderen soll direkt nach der DropDown Auswahl die HTML-Tabelle aktualisiert werden.

    Hier der Code:

    PHP-Code:
    <?php
    require_once("config.inc.php");
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Wo ist meine Lenkung?</title>
    </head>


    <body>
    <select> 
    <?php 

    // DropDown Auswahl als Filter für die SQL Abfrage
    $ortquery="SELECT ort FROM tracking";
    $ortresult=mysql_query($ortquery) or die ("Query to get data from firsttable failed: ".mysql_error());
                
                while (
    $ortrow=mysql_fetch_array($ortresult)) {
                
    $ort=$ortrow["ort"];
                    echo 
    "<option>
                        
    $ort
                    </option>"
    ;

    ?> 
    </select>

    <?php

    // Anfrage zusammenstellen um die Datensaetze auszulesen
    $sql "SELECT `ident`, `ort`, `platz`, IF(`prio`=0, '', 'Prio') as prio, `datum` FROM `tracking` WHERE ort='" .$ort."' order by prio DESC, datum DESC";

    // Anfrage an die DB schicken und die Rueckmeldung in eine Variable ablegen
    $abfrageergebnis mysql_query$sql$conID );

    // Ermitteln wie viele Datensaetzen gefunden wurden
    $anzahl mysql_num_rows$abfrageergebnis );
    echo 
    "<p>Es wurden <strong>" .$anzahl"</strong> Datensätze gefunden!</p>";

    // Tabelle erstellen fuer die Ausgabe
    echo '<table border="1">';
    echo 
    "<tr><th>Prüfling</th><th>Ort</th><th>Platz</th><th>Fast Lane</th><th>Datum</th></tr>";

    // Ab hier werden die Datensaetze zeilenweise ausgeben (auch fetchen genannt)
    while ($datensatz mysql_fetch_array$abfrageergebnis ))
    {    
        
    // Jeder Datensatz entspricht einer Tabellenzeile
        
    echo "<tr>";
        echo 
    "<td>" .htmlspecialchars$datensatz['ident'] ). "</td>";
        echo 
    "<td>" .htmlspecialchars$datensatz['ort'] ). "</td>";
        echo 
    "<td>" .htmlspecialchars$datensatz['platz'] ). "</td>";
        echo 
    "<td>" .$datensatz['prio']. "</td>";
        echo 
    "<td>" .$datensatz['datum']. "</td>";
        echo 
    "</tr>";
    }

    // Tabelle schliessen
    echo "</table>";

    ?>


    </body>
    </html>

  • #2
    Ok, hab's hinbekommen.
    Nun wird der Wert des DropDowns in die SQL-Abfrage übernommen.

    Jetzt sollte die generierte Tabelle sich nur ständig aktualisieren.
    Mit jQuery hab ich's schon hinbekommen, jedoch nur ohne das DropDown Menü.
    • Wie bekomme ich es hin, das sich die SQL-Abfrage der Tabelle "tracking" sich ständig aktualisiert. (Mit jQuery)?
    • Wie bekomme ich es hin, dass nach einer Auswahl im DropDown automatisch die SQL-Abfrage aktualisiert wird?


    PHP-Code:
    <?php
    require_once("config.inc.php");
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <script src="jquery-1.4.1.min.js" type="text/javascript"></script>

    <script type="text/javascript">
         $(document).ready(function() {
           $("#refresh").load("auslesen.php");
           var refreshId = setInterval(function() {
              $("#refresh").load('auslesen.php?' + 1*new Date());
           }, 1000);
        });
    </script>

    <title>Wo ist meine Lenkung?</title>
    </head>


    <body>

    <?php

    //DropDown Auswahl der Orte

    echo "<form name=\"orte\" method=\"post\">\r\n" 
    "<select name=\"orte_list\">\r\n"
       
    $result mysql_query("SELECT ort FROM Orte"); 
       while (
    $row mysql_fetch_object($result)){ 
          echo 
    "<option value=\"".$row->ort."\">".$row->ort."</option>\r\n"
       } 
    echo 
    "</select>\r\n" 
    "<p><input type=\"submit\" name=\"view\" value=\"Orte anzeigen\" /></p>\r\n" 
    "</form>\r\n"


    if(isset(
    $_POST['view']) === TRUE){

    // Anfrage zusammenstellen um die Datensaetze auszulesen
    $sql "SELECT `ident`, `ort`, `platz`, IF(`prio`=0, '', 'Prio') as prio, `datum` FROM `tracking` WHERE ort = '".$_POST['orte_list']."' ORDER by prio DESC, datum DESC";

    // Anfrage an die DB schicken und die Rueckmeldung in eine Variable ablegen
    $abfrageergebnis mysql_query$sql$conID );

    // Ermitteln wie viele Datensaetzen gefunden wurden
    $anzahl mysql_num_rows$abfrageergebnis );
    echo 
    "<p>Es wurden <strong>" .$anzahl"</strong> Datensätze gefunden!</p>";

    // Tabelle erstellen fuer die Ausgabe
    echo '<table border="1">';
    echo 
    "<tr><th>Prüfling</th><th>Ort</th><th>Platz</th><th>Fast Lane</th><th>Datum</th></tr>";

    // Ab hier werden die Datensaetze zeilenweise ausgeben (auch fetchen genannt)
    while ($datensatz mysql_fetch_array$abfrageergebnis ))
    {    
        
    // Jeder Datensatz entspricht einer Tabellenzeile
        
    echo "<tr>";
        echo 
    "<td>" .htmlspecialchars$datensatz['ident'] ). "</td>";
        echo 
    "<td>" .htmlspecialchars$datensatz['ort'] ). "</td>";
        echo 
    "<td>" .htmlspecialchars$datensatz['platz'] ). "</td>";
        echo 
    "<td>" .$datensatz['prio']. "</td>";
        echo 
    "<td>" .$datensatz['datum']. "</td>";
        echo 
    "</tr>";
    }

    // Tabelle schliessen
    echo "</table>";
    }
    ?>


    </body>
    </html>
    Danke!

    Kommentar

    Lädt...
    X