表结构:
测试链接
- 编号
- 来源
- 项目编号
- 客户编号
- 问答
- stg
- 产品
- 用户名
- 密码
项目
- 编号
- 项目名称
- 客户编号
- 项目描述
- 项目经理
- qbid
- 安静
- 更新日期
- 目标发布日期
- 状态
产品
- 编号
- 产品名称
- 项目经理用户 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”表处理产品与测试链接的关联,但我不知道如何将其添加到查询中,因为当我运行查询时,我得到的行重复了几次,但没有达到我想要的结果。
这是我的 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”表中)提取测试链接吗?
在这方面的帮助将不胜感激!
最佳答案
查询可能是这样的:
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()
可能会有所帮助。
关于php - 使用 PHP 和多个 HTML 下拉框从多个表(包括 'id' 引用表)查询 MySQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14128242/