1

テーブル構造:

テストリンク

  • ID
  • ソース
  • プロジェクト ID
  • クライアントID
  • stg
  • 製品
  • ユーザー名
  • パスワード

プロジェクト

  • ID
  • プロジェクト名
  • クライアントID
  • プロジェクトの説明
  • プロジェクトマネージャ
  • qbid
  • aetid
  • 更新日
  • ターゲットリリース日
  • 状態

製品

  • ID
  • 商品名
  • プロジェクトマネージャーユーザー ID

テストリンク製品

  • ID
  • テストリンク ID
  • 製品ID

クライアント

  • ID
  • クライアント名
  • クライアントマネージャー

私の目標は、テスト リンクを入力するシステムを作成し、ユーザーが一連のドロップダウン ボックスで選択できる複数のオプションに基づいて、適切なテスト リンクをプルできるようにすることです。

上記の表にデータを入力するように PHP および HTML ページをセットアップしました。現在、データを Web ページにプルするために必要な MySQL クエリと PHP をセットアップしようとしています。

ユーザーが 1) projects.id 2) testlinks.source 3) products.id 4) client.id に基づいて結果を照会できるようにしたいと考えています。

これらは 4 つの個別のドロップダウン ボックスから選択されます

これらの 2 つのテーブルには「projectid」が共通しているため、projects.id と testlinks.source に基づいて結果を簡単に引き出すことができました。ただし、製品はプロジェクトではなくテストリンクに関連付けられているため、「productid」に基づいて結果を取得する際に問題が発生しています。「testlinksproducts」テーブルは製品とテストリンクの関連付けを処理しますが、クエリを実行すると行が数回繰り返され、必要な結果が得られないため、これをクエリに追加する方法がわかりません。

これは、project.id と testlinks.source に基づいてテストリンクをプルするために機能している私の PHP ファイルです。

$query = "SELECT testlinks.id,
                 testlinks.source,
                 testlinks.projectid,
                 testlinks.clientid,
                 testlinks.qa,
                 testlinks.stg, 
                 testlinks.prod, 
                 testlinks.username,
                 testlinks.password, 
                 projects.id, 
                 projects.projectname 
          FROM testlinks , projects 
          WHERE testlinks.projectid = projects.id 
            AND (testlinks.projectid='$projectid' 
                 OR testlinks.source='$source')
          ;"; 

$result = mysql_query($query) or die(mysql_error()); 

echo "<table class=\"zebra\">"; 
echo "<thead><tr>
    <th>ID</th>
    <th>Source</th>
    <th>Project Name</th>
    <th>QA</th>
    <th>STG</th>
    <th>Prod</th>
    </tr></thead>";
while($row = mysql_fetch_array($result))
{
    echo "<tr>"; 
    echo "<td>".$row['id']."</td>
        <td>".$row['source']."</td>
        <td>".$row['projectname']."  </td>
        <td>"."<a href=\"".$row['qa']."\" target=\"new\">
            <button>QA</button></a></td>
        <td>"."<a href=\"".$row['stg']."\" target=\"new\">
            <button>STG</button></a></td>
        <td>"." <a href=\"".$row['prod']."\" target=\"new\">
            <button>PROD</button></a></td>
        </tr>";
}
echo "</table>";

productsid (「testlinksproducts」テーブルに含まれる) に基づいてテストリンクをプルするためのクエリ機能を追加するのを手伝ってくれる人はいますか?

これについて助けていただければ幸いです。

4

1 に答える 1

1

クエリは次のようになります。

SELECT testlinks.id,
                 testlinks.source,
                 testlinks.projectid,
                 testlinks.clientid,
                 testlinks.qa,
                 testlinks.stg,
                 testlinks.prod,
                 testlinks.username,
                 testlinks.password,
                 projects.id,
                 projects.projectname
          FROM testlinks , projects , TESTLINKSPRODUCTS
          WHERE testlinks.projectid = projects.id
            AND testlinks.id = TESTLINKSPRODUCTS.testlinksid
            AND (testlinks.projectid='$projectid'
                 OR testlinks.source='$source'
                 OR TESTLINKSPRODUCTS.productsid = '$productid')
          GROUP BY testlinks.id

注: テストリンクが 1 つのプロジェクト、製品、およびクライアントにしか存在できない場合、group-by は必要ない場合があります。group_concat()テストリンクが複数のプロジェクトにある場合は、 Aが役立つ場合があります。

于 2013-01-02T20:29:39.803 に答える