1

表结构:

测试链接

  • ID
  • 来源
  • 投影
  • 客户编号
  • 质量保证
  • stg
  • 产品
  • 用户名
  • 密码

项目

  • ID
  • 项目名
  • 客户编号
  • 项目介绍
  • 专案经理
  • 出价
  • 醋栗
  • 日期
  • 目标发布日期
  • 地位

产品

  • ID
  • 产品名称
  • 项目经理用户ID

测试链接产品

  • ID
  • testlinksid
  • 产品ID

客户

  • ID
  • 客户名称
  • 客户经理

我的目标是创建一个系统来输入测试链接,并使用户能够根据他们可以在一系列下拉框中选择的多个选项来拉取适当的测试链接。

我已经设置了 PHP 和 HTML 页面以将数据输入到上面列出的表格中。现在我正在尝试设置将数据拉入网页所需的 MySQL 查询和 PHP。

我希望用户能够根据 1)projects.id 2)testlinks.source 3)products.id 4)clients.id 查询结果

这些将从 4 个单独的下拉框中选择

我很容易能够根据 projects.id 和 testlinks.source 成功提取结果,因为这两个表有共同的“projectid”。但是,我现在在基于“productid”提取结果时遇到问题,因为产品与测试链接相关联,而不是与项目相关联。'testlinksproducts' 表处理产品与 testlinks 的关联,但我不知道如何将其添加到查询中,因为当我运行查询时,我得到的行重复了几次并且没有达到我想要的结果。

这是我的 PHP 文件,它用于基于 project.id 和 testlinks.source 拉取测试链接——

$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>";

有人可以帮助添加查询功能以根据 productid(包含在“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

注意:如果测试链接只能在一个项目、产品和客户端中,则可能不需要分组。group_concat()如果测试链接在多个项目中, A可能会有所帮助。

于 2013-01-02T20:29:39.803 回答