PHP MYSQL请求通过JQuery

时间:2011-11-16 10:46:03

标签: php jquery mysql ajax

我有一个图片库,目前我将结果限制为10。

我正在尝试通过jQuery点击“加载更多结果”按钮, 在数据库中加载接下来的10行(图像)。

目前我使用类query.php进行查询调用,然后在我的index.php中显示foreach循环中的数据。

我在考虑使用查询字符串在点击时将限制更改为10-20行,但在此中发现困难。

任何帮助将不胜感激。

class query.php

     public function Query($db_table, $limit) {

        $this->db_query = mysql_query("SELECT * FROM $db_table ORDER BY time DESC limit $limit");

        while($row = mysql_fetch_array($this->db_query)) {
            $rows[] = $row;
        }
        return $rows;
  }    

的index.php

$lim = $_GET['limit'];
$Results = $Database->Query('info',  $lim); 
    if(is_array($Results)) {?>
   foreach ($Results as $Result) { 
  //echo results

jquery的

$("#my_container").load("../lib/class.database.php?limit=10,20"  );

亲切的问候, 亚当

2 个答案:

答案 0 :(得分:6)

这很简单:

1。)您对PHP脚本进行AJAX调用

$.ajax(
{
  url: "get-ajax-images.php",
  data: "mode=ajax&start=10&end=20",

  success: function() { /* ... */ },
  error: function() { /* ... */ }
});

2.)PHP:根据startend

加载数据库中的数据
<?php

header("Content-type: application/json");

// Please use intval() to avoid SQL injections!!
$start = isset($_GET['start']) ? intval($_GET['start']) : exit('{"error": true}');
$end = isset($_GET['end']) ? intval($_GET['end']) : exit('{"error": true}');

/* valid start and end? */
if ( $start < 0 || $end < 0 )
  exit('{"error": true}');

if ( ($end - $start) <= 0 ||
     ($end - $start) > 15 )
  exit('{"error": true}');


/* All right! */

$sql = "SELECT id, imagepath FROM images LIMIT $start, $end";
$result = mysql_query($sql) or exit('{"error": true}');

$data = array();
while ( $row = mysql_fetch_assoc($result) )
{
  $data[] = $row;
}
echo json_encode($data);

答案 1 :(得分:0)

这是你问题的jquery部分

http://jsfiddle.net/manuel/e5kXc/

它包含已加载结果的总量,您可以使用var的limittotal来查询正确的结果