Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL Abfrage aktualisieren

Einklappen

Neue Werbung 2019

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

  • SQL Abfrage aktualisieren

    Hi,

    ich habe mir aus dem Inet ein Script zusammen gebastelt.
    Hier wird via Dropdown ein Filter gesetzt und anschließend findet eine SQL Abfrage statt.
    Nun soll nach Absenden des Formulars die Abfrage ständig aktualisiert werden.
    Leider bin ich ein absoluter Neuling auf dem Gebiet.

    hier der Code.

    PHP-Code:
    <?php
    session_start
    ();
    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>

    /* // Hier ist das Formular mit DropDown. Dient als Filter für die SQL-Abfrage */ 

    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="POST">
            <table border="0" cellpadding="2" cellspacing="1">
     
            <tr valign="top">
            <td><span class="gross">Ort:</span></td>
            <td>

        <select name="ortauswahl" value="" id="ortauswahl" size="1">
        <?php 
     
            $sqlortwahl 
    "SELECT DISTINCT ort FROM tracking";
            
    $resultortwahl mysql_query($sqlortwahl);
            while (
    $row mysql_fetch_assoc($resultortwahl)) 
            
            {
            echo 
    "<option value="."$row[ort]".">".$row[ort]."</option>";
            }
        
    ?>
        <option value="Alle">Alle</option>
        </select>
        </table>
        <input type="submit" name="view" value="Senden">
        </form>

    <?php

    // Hier wird entschieden, ob alle Datensätze angezeigt werden sollen, oder nur bestimmte
        
    if(isset($_POST['ortauswahl']) === TRUE){
        
    $ortauswahl $_POST['ortauswahl'];
            if (
    $ortauswahl == "Alle")
            {
                
    $ort " ";
            }
            else
            {
                
    $ort "WHERE ort = '{$ortauswahl}'";
            }
    // Speichert das Ergebnis in einer Session
        
    $_SESSION['ortauswahl'] = $ort;

    // Anfrage zusammenstellen um die Datensaetze auszulesen
    $sql "SELECT `ident`, `ort`, `platz`, IF(`prio`=0, '', 'Prio') as prio, `datum` FROM `tracking` ".$_SESSION['ortauswahl']." 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 id="anzeige">';
    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
    Nun soll nach Absenden des Formulars die Abfrage ständig aktualisiert werden.
    Spezifiziere das bitte. Meinst du damit das nach dem Absenden des Formulares in bestimmten Zeitabständen Daten in der angezeigten Website aktualisiert werden sollen?

    Denn dann geht das nicht mir reinem PHP. PHP ist Serverseitig und kann daher keine Daten beim Nutzer im Browser manipulieren.

    Also das Prinzip ist:
    Server führt PHP Code aus und erstellt daraus ein staatisches HTML Document -> Document wird an den Nutzer geschickt -> Browser vom Nutzer interpretiert das HTML und zeigt die Seite an.

    Erst wenn der Nutzer wieder eine neue "Anfrage" an den Server sendet heißt es also wieder:
    Server führt PHP Code aus und erstellt daraus ein staatisches HTML Document -> Document wird an den Nutzer geschickt -> Browser vom Nutzer interpretiert das HTML und zeigt die Seite an.

    Wenn du jetzt also die Daten aktualisieren willst geht das nur über ein neuen Seitenaufruf (das lässt sich dann auch PHP seitig implementieren denn du gibst einen entsprechenden HTML Befehl mit).

    Oder über eine Lösung mit AJAX (JavaScript ist eine Clientseitige Sprache die vom Browser interpretiert wird) denn dann sendest du im Hintergrund eine neue Anfrage an den Server und das Resultat baust du dann erst im Browser per JavaScript in die "bestehende" Website ein.
    Die zweite Lösung ist deutlich komplizierter und für einen "totalen" Neuling vermutlich nicht zu realisieren.

    Kommentar


    • #3
      Hi!
      Naja, bin nicht ganz neu, jedoch tu ich mir noch schwer mit den ganzen Syntaxen, etc.
      Ich habe das schon mit Ajax versucht.
      Anleitung --> http://www.tfonfara.de/ajax-seitenin...n-jquery.xhtml

      Hat auch soweit gut funktioniert bis zu dem Zeitpunkt, als ich das Formular integriert habe, um die SQL Abfrage zu filtern.

      D.h. mit dem Formular generiere ich die "WHERE" Bedingung für die SQL Abfrage.
      Das schreibe ich dann in eine Variable, welche dann bei der Abfrage im "SELECT" verwendet wird.

      Kommentar

      Lädt...
      X