2014-04-28 87 views
-3

我嘗試運行兩個循環第一個查詢在檢索列。第二個查詢採用第一個表的主ID並執行查詢。 最終的結果應該像html php沒有正確對齊每列

enter image description here 林不能夠給出正確對齊

低於被等給出的代碼是

<table width="100%" border="1" cellspacing="1" cellpadding="1" > 
<tr> 
    <td>Col1</td> 
    <td>col2</td> 
    <td>col3</td> 
    <td>col4/td> 
    </tr> 
<?php 

$mast = mysql_query("select * from table1 where av_master_id='".$_REQUEST['id']."'"); 
     while($res_mas= mysql_fetch_assoc($mast)) 
     { 
     ?> 
     <tr> 
    <td><?php echo $res_mas['col1'];?></td> 
    <?php 
    $room= mysql_query("SELECT * FROM `table2` WHERE av_room_id='".$res_mas['av_room_id']."'"); 

    while($res_room= mysql_fetch_assoc($room)) 
     { 
     ?> 

    <td><?php echo $res_room['col2'];?></td> 
    <td><?php echo $res_room['col3'];?></td> 
    <td><?php echo $res_room['col4'];?></td> 


    </td> 



    </tr><tr> 

    <?php }?> 
    </tr> 

    <?php } ?> 



    </table> 
+0

你有一個錯字:​​COL4/TD>應該是​​COL4 –

+0

你很容易受到[SQL注入攻擊(http://bobby-tables.com),和你的代碼是非常低效的。一般應避免嵌套查詢循環,並將其重寫爲單個「JOIN」操作。 –

回答

1

這應做到:

<table width="100%" border="1" cellspacing="1" cellpadding="1" > 
    <tr> 
     <td>Col1</td> 
     <td>col2</td> 
     <td>col3</td> 
     <td>col4/td> 
    </tr> 
<?php 

$mast = mysql_query("select * from table1 where av_master_id='".$_REQUEST['id']."'"); 
while($res_mas = mysql_fetch_assoc($mast)) { 
    $room = mysql_query("SELECT * FROM `table2` WHERE av_room_id='".$res_mas['av_room_id']."'"); 

    $count = 0; 
    while($res_room= mysql_fetch_assoc($room)) { 
     $count += 1; 
?> 
    <tr> 
     <td><?php echo $count === 1 ? $res_mas['col1'] : "";?></td> 
     <td><?php echo $res_room['col2'];?></td> 
     <td><?php echo $res_room['col3'];?></td> 
     <td><?php echo $res_room['col4'];?></td> 
    </tr> 
<?php } } ?> 
</table> 

(未測試)