sql >> Databasteknik >  >> RDS >> Mysql

Hämta data med Jquery, AJAX och PHP från en MySQL-databas

Först av allt skulle jag starkt rekommendera att använda ett JS-objekt för datavariabeln i ajax-förfrågningar. Detta kommer att göra ditt liv mycket enklare när du har mycket data. Till exempel:

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

När det gäller att hämta information från servern måste du först göra ett PHP-skript för att dra ut data från db. Om du antar att du ska få mycket information från servern, så kanske du dessutom vill serialisera dina data i antingen XML eller JSON (jag skulle rekommendera JSON).

I ditt exempel kommer jag att anta att din db-tabell är väldigt liten och enkel. De tillgängliga kolumnerna är id, kod och beskrivning. Om du vill hämta alla nyhetsbeskrivningar för en specifik kod kan din PHP se ut så här. (Jag har inte gjort något PHP på ett tag så syntaxen kan vara fel)

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

Exempelutdata:

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

Så i detta skede kommer du att ha ett PHP-skript som returnerar data i JSON. Låt oss också anta att webbadressen till detta PHP-skript är foo.php .

Sedan kan du helt enkelt få ett svar från servern genom att:

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

Det är allt.




  1. Övervaka MariaDB-prestanda i ett hybridmoln

  2. Mysql Chain Select Query

  3. MySQL använder inte index med WHERE IN-klausul?

  4. MySQL 8.0.11-fel vid anslutning på grund av caching_sha2_password