表格结构:
TESTLINKS
项目
产品
TESTLINKSPRODUCTS
客户
我的目标是创建一个系统来输入测试链接,并使用户能够根据他们可以在一系列下拉框中选择的多个选项来提取相应的测试链接。
我已经设置了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>";
有人可以帮助添加查询功能以基于productsid(包含在'testlinksproducts'表中)中提取测试链接吗?
非常感谢帮助!
答案 0 :(得分: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
注意:如果testlink只能在一个项目,产品和客户端中,则可能不需要分组。如果testlink位于多个项目中,group_concat()
可能会有所帮助。