sql >> Databáze >  >> RDS >> Mysql

Načítání dat pomocí Jquery, AJAX a PHP z databáze MySQL

Nejprve bych velmi doporučil použít objekt JS pro datovou proměnnou v požadavcích ajax. Díky tomu bude váš život mnohem jednodušší, když budete mít hodně dat. Například:

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

Pokud jde o získávání informací ze serveru, nejprve budete muset vytvořit PHP skript pro vytažení dat z databáze. Pokud předpokládáte, že ze serveru získáváte spoustu informací, můžete navíc chtít serializovat svá data buď ve formátu XML nebo JSON (doporučuji JSON).

Ve vašem příkladu budu předpokládat, že vaše tabulka db je velmi malá a jednoduchá. Dostupné sloupce jsou id, kód a popis. Pokud chcete stáhnout všechny popisy novinek pro konkrétní kód, vaše PHP může vypadat takto. (Už nějakou dobu jsem nedělal žádné PHP, takže syntaxe může být chybná)

// 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);

Ukázkový výstup:

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

Takže v této fázi budete mít PHP skript, který vrací data v JSON. Předpokládejme také, že adresa URL tohoto PHP skriptu je foo.php .

Poté můžete jednoduše získat odpověď ze serveru:

$('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
                   }
            });
         });

To je vše.




  1. Jak vytvořit zástupce pro SSMS a automaticky se připojit k výchozímu serveru SQL - SQ:Server / TSQL výukový program, část 4

  2. Přístup odepřen; pro tuto operaci potřebujete (alespoň jedno) oprávnění SUPER

  3. Nejlepší způsob, jak zkontrolovat stávajícího uživatele v databázi mySQL?

  4. Django – OperationalError:(1054, neznámý sloupec 'xx' v 'seznamu polí')