Mysql
 sql >> база данни >  >> RDS >> Mysql

Извличане на данни с Jquery, AJAX и PHP от MySQL база данни

Преди всичко бих препоръчал горещо да използвате JS обект за променливата на данните в ajax заявките. Това ще направи живота ви много по-лесен, когато имате много данни. Например:

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

Що се отнася до получаването на информация от сървъра, първо ще трябва да направите PHP скрипт за изтегляне на данните от db. Ако се предполага, че ще получите много информация от сървъра, тогава в допълнение може да искате да сериализирате данните си в XML или JSON (бих препоръчал JSON).

Във вашия пример ще приема, че вашата db таблица е много малка и проста. Наличните колони са идентификатор, код и описание. Ако искате да изтеглите всички описания на новините за конкретен код, вашият PHP може да изглежда така. (Не съм правил никакъв PHP от известно време, така че синтаксисът може да е грешен)

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

Примерният изход:

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

Така че на този етап ще имате PHP скрипт, който връща данни в JSON. Също така нека приемем, че URL адресът на този PHP скрипт е foo.php .

След това можете просто да получите отговор от сървъра чрез:

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

Това е всичко.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TRIGGERS, които причиняват неуспех на INSERT? Възможен?

  2. Актуализиране и изтриване на свързани модели (релационни таблици) в Yii

  3. MySQL:Бавен журнал; добавяне на използване на процесора

  4. Неподлежаща на актуализиране колона в таблицата на mysql

  5. изчислете разликите между два реда в SQL