2012-04-03 10 views
0

SQL構造Iは、POSTを介して、x、yを更新または取得すると、私はから新しいデータを取得したいが自動的にデータベースから引き出されたデータとPHPループを更新

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

サイトをリフレッシュせずにデータベースを作成すると、どのように管理できますか?私は実際にここにこだわっているので、誰かに私にいくつかの例を教えてもらえますか?

<?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>"; 

?> 
+0

AJAXを使用してください。それはあなたがそうすることができます – hjpotter92

+0

私は出力を変更する必要がありますか私はちょうど私が持っているPHPのテーブルコードを保持することはできますか? –

+0

ちょうどメモ:出力のすべての行を "エコー"しません。変数を作成して更新した後、コードの最後にその変数をエコー(またはリターン)します。 – jwhat

答えて

0

ページを更新せずにページのコンテンツを更新するには、AJAXを使用する必要があります。 JavaScriptライブラリjQueryを使用することをお勧めします。

使用例:

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