2014-04-28 90 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> 

(未测试)