Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abrufen von Daten mit Jquery, AJAX und PHP aus einer MySQL-Datenbank

Zunächst einmal würde ich dringend empfehlen, ein JS-Objekt für die Datenvariable in Ajax-Anfragen zu verwenden. Dies wird Ihr Leben viel einfacher machen, wenn Sie viele Daten haben. Zum Beispiel:

$('h1').click(function() {
            $.ajax({
                type:"POST",
                url: "ajax.php",
                data: { "code": code },
                datatype: "xml",
                success: function() {
                $(xml).find('site').each(function(){
                    //do something
                });
            });
        });

Um Informationen vom Server zu erhalten, müssen Sie zuerst ein PHP-Skript erstellen, um die Daten aus der Datenbank abzurufen. Wenn Sie davon ausgehen, dass Sie viele Informationen vom Server erhalten, möchten Sie Ihre Daten möglicherweise zusätzlich in XML oder JSON (ich würde JSON empfehlen) serialisieren.

In Ihrem Beispiel gehe ich davon aus, dass Ihre db-Tabelle sehr klein und einfach ist. Die verfügbaren Spalten sind ID, Code und Beschreibung. Wenn Sie alle Nachrichtenbeschreibungen für einen bestimmten Code abrufen möchten, könnte Ihr PHP so aussehen. (Ich habe seit einiger Zeit kein PHP mehr gemacht, daher könnte die Syntax falsch sein)

// create data-structure to handle the db info
// this will also make your code more maintainable
// since OOP is, well just a good practice
class NewsDB {
    private $id = null;
    var $code = null;
    var $description = null;

    function setID($id) {
        $this->id = $id;
    }
    function setCode($code) {
        $this->code = $code;
    }
    function setDescription($desc) {
        $this->description = $desc;
    }
}

// now you want to get all the info from the db
$data_array = array(); // will store the array of the results
$data = null; // temporary var to store info to

// make sure to make this line MUCH more secure since this can allow SQL attacks
$code = htmlspecialchars(trim($_POST['lname']));

// query
$sql = "select * from news where code=$code";
$query = mysql_query(mysql_real_escape_string($sql)) or reportSQLerror($sql);

// get the data
while ($result = mysql_fetch_assoc($query)) {
    $data = new NewsDB();
    $data.setID($result['id']);
    $data.setCode($result['code']);
    $data.setDescription($result['description']);
    // append data to the array
    array_push($data_array, $data);
}

// at this point you got all the data into an array
// so you can return this to the client (in ajax request)
header('Content-type: application/json');
echo json_encode($data_array);

Die Beispielausgabe:

[
  { "code": 5, "description": "desc of 5" },
  { "code": 6, "description": "desc of 6" },
  ...
]

In diesem Stadium haben Sie also ein PHP-Skript, das Daten in JSON zurückgibt. Nehmen wir außerdem an, dass die URL zu diesem PHP-Skript foo.php ist .

Dann können Sie einfach eine Antwort vom Server erhalten, indem Sie:

$('h1').click(function() {
            $.ajax({
                type:"POST",
                url: "foo.php",
                datatype: "json",
                success: function(data, textStatus, xhr) {
                   data = JSON.parse(xhr.responseText);
                   // do something with data
                   for (var i = 0, len = data.length; i < len; i++) {
                       var code = data[i].code;
                       var desc = data[i].description;
                       // do something
                   }
            });
         });

Das ist alles.