0

对于我目前的进度,我需要创建一个如下表

pid cid eid 名称值

1 1 4 姓名 ab
2 1 5 上午 2
3 1 4 名 cd
4 1 5 上午 4

而不是像这样创建表

pid cid 名称 amt

1 1 ab 22
2 1 光盘 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 1 4 名称 abc
1 1 4 名称 cde
13 1 5 代码 12
2 1 5 代码 14

如何拆分数据

名称 代码 饲养员 质量 大小

美国广播公司 12 121 121 22
acfd 34 164 22 22

谢谢

4

1 回答 1

0

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

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

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数据库中的列,为什么你需要它在 HTML 表中,如果你过滤元素cat_id=1呢?那是故意的吗?

您现在可以获取查询结果并简单地将其逐行输出到 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_功能已弃用。请参阅PHP 文档页面上的大红框。

于 2013-04-17T13:17:57.797 回答