使用从数据库中提取的数据自动更新php循环

时间:2012-04-03 17:21:55

标签: php

SQL结构

CREATE TABLE IF NOT EXISTS `map` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `x` int(11) NOT NULL,
  `y` int(11) NOT NULL,
  `type` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

http://localhost/map.php?x=0&y=0

当我通过POST或GET更新x和y时,我想从数据库中提取新数据而不刷新网站,我该如何管理?有人可以给我一些例子,因为我真的被困在这里。

<?php


mysql_connect('localhost', 'root', '');
mysql_select_db('hol');

$startX = $_GET['x'];
$startY = $_GET['y'];
$fieldHeight = 6;
$fieldWidth = 6;

$sql = "SELECT id, x, y, type FROM map WHERE x BETWEEN ".$startX." AND ".($startX+$fieldWidth). " AND y BETWEEN ".$startY." AND ".($startY+$fieldHeight);

$result = mysql_query($sql);

$positions = array();

while ($row = mysql_fetch_assoc($result)) {
    $positions[$row['x']][$row['y']] = $row;
}

echo "<table>";
for($y=$startY; $y<$startY+$fieldHeight; $y++) {
    echo "<tr>";
    for($x=$startX; $x<$startX+$fieldWidth; $x++) {
        echo "<td>";
        if(isset($positions[$x][$y])) {
            echo $positions[$x][$y]['type'];
        }
        else {
            echo "(".$x.",".$y.")";
        }
        echo "</td>";
    }
    echo "</tr>";
}
echo "</table>"; 

?>

1 个答案:

答案 0 :(得分:0)

您需要使用AJAX更新页面上的内容而不刷新页面。我建议使用JavaScript库jQuery

使用示例:

$.ajax({
  url: 'path/to/file/file.php',
  success: function(data) {
    $('.content-to-update').html(data);
  }
});