quieres devolver solo un registro por pagina? o es parte de la prueba que haces del paginado?
te pego aquí como lo hago yo para ver si te sirve, de hecho si vas a devolver los campos con el mismo nombre que tienen en la base de datos este codigo es mas eficiente que escribir pareados los datos como lo haces en tu codigo:
Código:
$start = (integer) (isset($_POST['start']) ? $_POST['start'] : 0);
$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : 10000);
$sortDir = isset($_POST['dir']) ? $_POST['dir'] : "ASC";
$sortBy = isset($_POST['sort']) ? $_POST['sort'] : "id"; //este campo es por el cual quieres ordenar
$sql_count = "SELECT * FROM mitabla";
$sql = $sql_count . ' ORDER BY ' . $sortBy. ' ' . $sortDir . ' LIMIT ';
$sql .= $start . ', '. $end;
$result_count = mysql_query($sql_count) or die();
$total = mysql_num_rows($result_count);
$arr = array();
$rs = mysql_query($sql) or die(falla('servidor',mysql_errno()));
while($obj = mysql_fetch_object($rs)){
$arr[] = $obj;
}
echo '{"success":true, "total" : '.$total.', "data":'.json_encode($arr).'}';