我认为我已经接近解决方案,但还没有完全理解。
我想做的是从两个不同的表中获取product.naam和categorie.naam。 下面的代码为我提供了两者的 naam,我可以访问它们,但现在我想要产品中的所有内容,而不仅仅是名称,然后我不知道如何从 $row 访问它...
感谢每一点帮助
$kerst_sql = " SELECT product.naam, product.prijs AS p_naam, categorie.naam AS c_naam
FROM categorie_product,
product, categorie
WHERE product.product_id = categorie_product.product_product_id
AND categorie_product.categorie_categorie_id = '1'
GROUP BY product.naam";
$result = mysqli_query($con, $kerst_sql);
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo $row['p_naam'];
echo $row['c_naam'];
}
最佳答案
如果您不想明确全部列出,您可以使用SELECT Product.*, categorie.naam AS c_naam FROM ...
,然后像这样访问它:
echo $row['naam']; // product.naam
echo $row['prijs']; // product.prijs
echo $row['c_naam']; // categorie.naam
但我认为选择您需要的特定列(并适本地为它们起别名)而不是使用 SELECT *
通常是一个好主意。 IMO,您应该有真正的理由想要使用星号,而不仅仅是您不想键入所有列名称。
我会使用SELECT *
的一个例子是当我知道我需要表中当前存在的所有列和可能存在的任何列时将来添加。例如,如果我正在编写一个应用程序,其目的是显示表格的全部内容。
在循环访问列时,您要注意记住,可以随时添加或删除列。因此,例如,如果您在 HTML 表格中显示它们,请确保不要对列标题进行硬编码,因为如果在表格中添加或删除列,则会出现额外或缺失的列。
如果这不是您想要做的事情,最好明确列出您想要选择的每一列。
关于php - 如何访问具有相同名称的不同表的多个mysql行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20658476/