2012-11-05 3 views
0

PHP 내에서 동적 테이블을 만들려면 특정 테이블의 행을 계산하는 쿼리에서 변수 $count을 설정합니다. 그리고 나는 HTML 테이블로 행의 정확한 수있는 테이블을 만들 싶습니다 나는 테이블에 표시 할 방법mysql 테이블의 모든 행을 처리하는 방법은 무엇입니까?

for($i=1;$i=<$count;$i++){ 
    echo"<tr><td>$name</td><td>$rights</td></tr>"; 
} 

합니다. 그러나 for 루프가 호출 될 때마다 $name$rights의 값을 데이터베이스 테이블에서 가져와야합니다. 하지만 어떻게 처리해야합니까? ID가 같은 행에서 이름을 선택하는 간단한 쿼리에 대해 생각했습니다. 그러나 그때 나는 테이블에서 엔트리를 삭제할 때 언제나 갭이 있다는 것을 기억했다. 예를 들어 3 개의 항목이 있고 두 번째 항목을 삭제하면 예를 들어. 2 개의 엔트리 만 있습니다. ID가 3 인 두 번째 행의 이름이 절대로 선택되지 않습니다. 적절한 방법으로이 문제를 처리 할 수있는 방법이 있습니까?

+1

쿼리 실행 방법을 보지 않고는 대답 할 수 없습니다. 그러나'$ name = $ row [ 'name']의 라인을 따라 뭔가 상상해 봅니다. $ rights = $ row [ 'rights']; ' –

+1

모두를 선택하고 결과를 반복합니다. – Wug

답변

2

for을 사용하면 while 또는 foreach을 쿼리의 결과와 함께 사용합니다.

<?php 
$db = new PDO($dsn, $user, $pass); 
$stmt = $db->query('SELECT id, rights FROM the_table'); 
?> 

<table> 
<thead> 
<tr> 
    <th>Id</th> 
    <th>Rights</th> 
</tr> 
</thead> 
<tbody> 
<?php if($stmt !== false): ?> 
<?php foreach($stmt as $row): ?> 
    <tr> 
    <td><?php echo $row['id'] ?></td> 
    <td><?php echo $row['rights'] ?></td> 
    </tr> 
<?php endforeach; ?> 
<?php endif; ?> 
</tbody> 
</table> 
관련 문제