php - 如何访问具有相同名称的不同表的多个mysql行

标签 php mysql

我认为我已经接近解决方案,但还没有完全理解。

我想做的是从两个不同的表中获取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/

相关文章:

php - 产品页面上的串联类别列表

带 HREF 的 PHP While 循环

php - 当所有对象都属于同一类型时,我可以省略 PHP in_array() 中的 strict 参数吗?

php - 禁止 :You don't have permission to access/phpmyadmin on this server

mysql - 如何在mysql中为列设置值范围?

mysql - MySQL 中不区分大小写的 unicode 排序规则

mysql - mysql中如何显示表的字段?

php - 以 html 格式添加特定字体 phpmailer 或 swiftmailer

PHPExcel OpenOffice Calc (ods) 文件问题

c# - Entity Framework 6 和 mysql 的问题