2012-04-03 4 views
0

SQL 구조 내가 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); 
    } 
}); 
관련 문제