连接两个数据库表并将结果输出到HTML表


Join two database tables and output resutls to HTML table

对于我当前的进度,我需要创建一个像下面这样的表

<>之前Pid cid eid名称值1 .名字2 .我不知道3 1 4名称CD4、1、5、4之前

不像这样创建表

<>之前Pid cid名称11 ab 222 1 CD 4之前

无论如何用下面的代码创建表

<table width="1204" height="100" border="1">
  <tr>
  <?php  $sqlname="Select * From  elements  where cat_id='1' order by e_id ";   
           $resname=mysql_query($sqlname);
           while($rowname=mysql_fetch_array($resname)){
          ?>
    <td colspan="2"><?php echo $rowname['lable_name']; ?></td>
  </tr>
  <tr>
  <?php $i=0; 
  $sqlprolist="select value from products_list where name='".$rowname['lable_name']."' and e_id='".$rowname['e_id']."'";
          $resprolist=mysql_query($sqlprolist);
          while($rowprolist=mysql_fetch_array($resprolist)){
              $i++;
         ?>
    <td><?php echo $rowprolist['value'];?></td>
    <?php if($i%8==0){
        ?>
        <tr></tr>
        <?php }?>
    <?php }?>
  </tr>
  <?php }?>
</table>

但是我不知道从表中检索数据进行处理。

感谢

,如下面的表

所示<>之前Pid cid eid名称值12 .名称ABC1 .名称代码13 15代码122 15代码14之前

如何拆分数据像

<>之前命名代码繁殖器质量大小ABC 12 121 121 22Acfd 34 164 22 22之前

谢谢

不了解数据库结构很难帮助您。请与我们分享,你可能会得到更好的答案。

无论如何,我想你有两个表,elementsproducts_list。看起来您需要为elements表中的每一行查找products_list中的value列。您可以使用一个SQL查询将这些表合并为一个结果集:

SELECT e.p_id, e.cat_id, e.e_id, e.lable_name, p.value
FROM elements e, products_list p
WHERE e.cat_id='1' AND 
p.name = e.lable_name AND p.e_id = e.e_id
ORDER BY by e.e_id

请注意,e.p_id只是一个猜测,您没有与我们分享"pid"列值的来源。也不确定,如果您实际上需要使用p.name = e.lable_name匹配行。如果e_id是主键,可以只使用p.e_id = e.e_id

cid列的意义是什么?如果它确实是数据库中的cat_id列,那么如果您将元素过滤到cat_id=1,为什么在HTML表中需要它呢?这是故意的吗?

现在可以将查询结果一行一行地输出到HTML表中,如:

<table width="1204" height="100" border="1">
  <tr>
    <th>pid</th>
    <th>cid</th>
    <th>eid</th>
    <th>name</th>
    <th>value</th>
  </tr>
  <?php
    $sqlname =
        "SELECT e.p_id, e.cat_id, e.e_id, e.lable_name, p.value ".
        "FROM elements e, products_list p ".
        "WHERE e.cat_id='1' AND ".
        "p.name = e.lable_name AND p.e_id = e.e_id".
        "ORDER BY e.e_id";   
    $resname = mysql_query($sqlname);
    while ($row = mysql_fetch_array($resname))
    {
  ?>
  <tr>
    <td><?php echo $row['p_id'];?></td>
    <td><?php echo $row['cat_id'];?></td>
    <td><?php echo $row['e_id'];?></td>
    <td><?php echo htmlspecialchars($row['lable_name']);?></td>
    <td><?php echo $row['value'];?></td>
  </tr>
  <?php 
    }
  ?>
</table>

这只是第一步。这不太可能是正确答案。但我希望它能帮助你理解,你在尝试做什么和你的问题。

这几乎不是生产级代码。但是我想做尽可能少的改变,这样你就可以看到,你的代码实际改变了什么。

还请注意,mysql_函数已弃用。