2013-04-17 93 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行中(而不是分割)。這就是我的例子所顯示的。 –