如何根据值显示多个表

时间:2013-07-22 08:56:56

标签: php mysql html-table echo

我有一个显示我的信息的库存页面,我试图有多个基于部门值的表,基本上我想要自己显示表中的每个部门而不是单个表,看起来它会使页面更容易查看,是的我是新的,是的我正在使用mysql,我知道它不赞成等等等等等等,这是一个本地数据库而且我是自学成才的。我是否必须使用某种循环或者是否有更简单的方法?

<?php
   $connect = mysql_connect("localhost", "Me", "password") or die ("Check your connection.");
   mysql_select_db("radio");
   $quey1="select * from inventory order by department, user";
   $result=mysql_query($quey1) or die(mysql_error());
?>
<table border=1 cellpadding="10 cellspacing="1 style="background-color:#F0F8FF;" >
 <tr>
  <th>Serial Number</th>
  <th>Model</th>
  <th>Department</th>
  <th>User</th>
  <th>Date</th>
 </tr>
<?php
   while($row=mysql_fetch_array($result)){
      echo "<tr><td>";
      echo $row['serialnumber'];
      echo "</td><td>";
      echo $row['model'];
      echo "</td><td>";
      echo $row['department'];
      echo "</td><td>";
      echo $row['user'];
      echo "</td><td>";
      echo $row['date'];
      echo "</td></tr>";
   }
   echo "</table>";
?>

2 个答案:

答案 0 :(得分:1)

    <?php
   $connect = mysql_connect("localhost", "Me", "password") or die ("Check your connection.");
   mysql_select_db("radio");
   $quey1="select * from inventory order by department, user";
   $result=mysql_query($quey1) or die(mysql_error());
   while($row=mysql_fetch_array($result)){
      $resultsArr[] = $row;
      $departments[] = $row['department'];
   }


foreach($departments as $department) { ?>
  <table border=1 cellpadding="10 cellspacing="1 style="background-color:#F0F8FF;" >
     <tr>
        <th>Serial Number</th>
        <th>Model</th>
        <th>Department</th>
        <th>User</th>
        <th>Date</th>
     </tr>
   <?php foreach($resultArr as $value) 
        if($value['department'] == $department) { ?>
           <tr>
                <td><?php echo $value['serialnumber']; ?></td>
                <td><?php echo $row['model']; ?></td>
                <td><?php echo $row['department']; ?></td>
                <td><?php echo $row['user']; ?></td>
                <td><?php echo $row['date']; ?></td>
           </tr>
   <?php } ?>
<?php } ?>

尝试一下,告诉我它是否有效。

Romeo Onisim

答案 1 :(得分:0)

你可以在循环中创建整个表。然后检查新部门值何时到来,然后关闭上一个表并打开一个新表。

正因如此,您知道如果不需要,这种混合逻辑会产生复杂性。如果您考虑将所有数据库交互移动到一个部分,在另一个部分中处理数据库查询的结果,将结果输出到另一个部分,您会发现甚至不会发生此问题。这是一个非常基本的MVC概念。