Zum Inhalt springen.
Zum Seitenanfang springen.
Sie befinden sich genau hier: Home > Computer > Coding > PHP-Ajax-SQL-Datenbankabfrage.

PHP-Ajax-SQL-Datenbankabfrage:

Die Datei merkzettel.php5 zeigt ein Beispiel, wie drei unterschiedliche Spalten mittels SQL, PHP und Ajax direkt beim tippen abgefragt werden (z.B. einfach nach Windows suchen). Der Quelltext dafür sieht so aus:

<?php
if (isset($_GET['ajax'])) {
    $dbh = mysql_connect("URL", "Benutzername", "Passwort");
    $query = "use Datenbankname";
    if (!mysql_query($query, $dbh)) die("Datenbank existiert nicht.n");
    $query = "SELECT Titel, Artikel, Tag
    FROM Merkzettel
    INNER JOIN Artikel on Merkzettel.ID = Artikel.ID
    WHERE Tag LIKE '%"
.$_GET['Tags']."%' AND Titel LIKE '%".$_GET['Titel']."%' AND Artikel LIKE '%".$_GET['Artikel']."%' ";
    $result = mysql_query($query, $dbh) OR die(mysql_error());
    
    if (!$result) {
     print mysql_error();
     die("Query $query ist ungültiges SQL.");
    } else echo "Die Datenbankabfrage ergab folgende Ergebnisse:<br /><br />\n";

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "<h3>" .utf8_encode($row[Titel]). "</h3><br />\n";
    echo "" .utf8_encode($row[Artikel]). "<br /><br />\n";
    echo "<h4>Tags:</h4>" .utf8_encode($row[Tag]). "<br /><br />\n";
    echo "<hr /><br />\n";
    }
} else {
     echo ' <h2>Merkzettel:</h2>
     <img src="../bilder/tafel_gr.gif" alt="Flipchart mit Hello World" align="right" />
     Was ich vielleicht mal gebrauchen  kann, oder bereits mal benutzt habe, habe ich mir hier notiert.
     Die Daten liegen in einer Datenbank und werden mit PHP und  Ajax direkt beim tippen abgefragt.
     <br /><br />
     <script type="text/javascript" src="../js/merkzettel.js"></script>
     <table>
     <tr>
     <td><b>Suche im Titel:</b></td>
     <td><input type="text" length="50" id="Titel" value="" onkeyup="Eintrag_Suchen()" /></td>
     </tr>
     <tr>
     <td><b>Suche im Artikel:</b></td>
     <td><input type="text" id="Artikel" value="" length="50" onkeyup="Eintrag_Suchen()" /></td>
     </tr>
     <tr>   
     <td><b>Suche in den Tags:</b></td>
     <td><input type="text" id="Tags" value="" length="50" onkeyup="Eintrag_Suchen()" /></td>
     </tr>
     </table>
     <br /><br />
     <hr /><br />
     <div id="gefunden">
     </div>
     '
;
    }
?>

Die Datei merkzettel.js sieht so aus:

function Eintrag_Suchen() {
    var Titel = document.getElementById("Titel").value
    var Artikel = document.getElementById("Artikel").value;
    var Tags = document.getElementById("Tags").value;
    var url = "merkzettel.php5?ajax=on&Titel=" + Titel + "&Artikel=" + Artikel + "&Tags=" + Tags;
    
    req = XMLobject();
    
    if(req) {        
        req.onreadystatechange = antwort;
        req.open("GET", url, true);
        req.send(null);
    }
}


function antwort() {
    if (req.readyState == 4) {
        if (req.status == 200) {
        //Testausgabe: alert(req.responseText);
        document.getElementById('gefunden').innerHTML = req.responseText;
        }
    }
}

function XMLobject() {
    var req = false;

    if(window.XMLHttpRequest) {
        try {
        req = new XMLHttpRequest();
        } catch(e) {
            req = false;
            }
    } else if(window.ActiveXObject) {
        try {
        req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                req = false;
                }
            }   
        }
return req;
}