2013-04-17 65 views
0

对于我目前的进度,我需要创建一个表像下面加入两个数据库表和输出resutls到HTML表格

 
pid cid eid name value 

1 1 4 name ab 
2 1 5 amt 2 
3 1 4 name cd 
4 1 5 amt 4 

的而不是创建表这样

 
pid cid name amt 

1 1 ab 22 
2 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 name value 

12 1 4 name abc 
1 1 4 name cde 
13 1 5 code 12 
2 1 5 code 14 

如何将数据分为 像

 
name code breeder quality size 

abc 12 121  121  22 
acfd 34 164  22  22 

感谢

+0

那么你的问题是什么? –

+0

您可以添加align = “left” 你的细胞('')或使用DIV和CSS,我建议,这是基本的HTML – Fabio

+0

@ N.B。我想他是问对齐 – Fabio

回答

0

很困难无需查看数据库结构即可帮助您。请与我们分享,你可能会得到更好的答案。

不管怎样,我想你有两个表,elementsproducts_list。它看起来像你需要查找的products_listvalue列在elements表的每一行。您可以合并这些表放入一个结果使用一个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列,那么为什么在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 documentation page上的大红色框。

+0

感谢@Martin我的数据库与您的查询完全匹配......但现在我如何将数据拆分为单行 – user2212724

+0

“分裂数据”是什么意思?什么数据?你想如何分割它?为什么?你想对结果做什么? –

+0

我明白你想要将两个表中的数据合并到一个HTML行中(而不是分割)。这就是我的例子所显示的。 –