我开始学习php了。我能够从[in this table][1]中的SQL查询中提取CD列表,但还有另一个查询包含Category,该查询通过ID在此表中链接。
如何使用一个查询获得相同结果集中的所有列?
<?php
include 'database_conn.php';
$sql = "SELECT id, title, year, price FROM table_cd";
$queryresult = mysqli_query($conn, $sql)
or die (mysqli_error($conn));
while($row = mysqli_fetch_assoc($queryresult)) {
$iid = $row['id'];
$title = $row['title'];
$year = $row['year'];
$price = $row['price'];
echo "<div>
<a href = '"editCDForm.php?itemCode=$iid'">$title</a>
</div>'n";
echo $row['year'];
echo $row['price'];
}
?>
editCDForm.php:
<?php
$code = $_GET['itemCode'];
$sql = "SELECT * FROM table_cd WHERE table_category.ID = $code
JOIN table_category ON (table_category.Desc = table_cd.ID)";
?>
您正在寻找的是所谓的JOIN
,它允许您将两个或多个表中的行合并到相同的结果集中。
您可以如下所示修改您的查询,通过在catID
列上使用nmc_cd
表和nmc_category
表的LEFT JOIN
作为它们之间的公共主属性,为您提供所需的结果集…
$sql = "SELECT nmc_cd.CDID, nmc_cd.CDTitle, nmc_cd.CDYear,
nmc_cd.CDPrice, nmc_category.catDesc
FROM nmc_cd
JOIN nmc_category on nmc_cd.catID = nmc_cd.catID";
这是一篇很好的文章,可以帮助您直观地了解SQL中的JOIN是什么样子的。
连接的语法:SELECT * FROM table1
JOIN table2 ON (table2.colunmname = table1.columnname)
use可以在连接两个表时从两个表中获取数据:
$sql = "SELECT FT.CDID, FT.CDTitle, FT.CDYear, FT.CDPrice,
ST.catDesc FROM nmc_cd AS FT LEFT JOIN nmc_category as ST ON
FT.catID=ST.catID";