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 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>

しかし、処理のためにテーブルからデータを取得するという考えはありません。

ありがとう

martin に従って、以下のテーブルのように作成されたテーブル

pid cid eid 名前 値

12 1 4 名前abc
1 1 4 名前の CDE
13 1 5 コード 12
2 1 5 コード 14

のようにデータを分割する方法

ネームコード ブリーダー クオリティ サイズ

abc 12 121 121 22
34 164 22 22

ありがとう

4

1 に答える 1

0

データベースの構造を知らずに手助けすることは困難です。より良い回答が得られるかもしれませんので、私たちと共有してください。

とにかく、2 つのテーブルがあるelementsとしproducts_listます。テーブルのすべての行でvalue列を検索する必要があるようです。単一の SQL クエリを使用して、これらのテーブルを 1 つの結果セットにマージできます。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 に答える