使用php、mysql查询两个表

使用php、mysql查询两个表,php,mysql,Php,Mysql,我现在的问题是这样的: $result = mysql_query("SELECT * FROM promo JOIN items ON promo.id = items.promo_id WHERE promo.id='$promo_id'") or die('Error : ' . mysql_error()); while($row = mysql_fetch_array($result)) { echo "<p>".$row['title']."</

我现在的问题是这样的:

  $result  = mysql_query("SELECT * FROM promo JOIN items ON promo.id = items.promo_id WHERE promo.id='$promo_id'") or die('Error : ' . mysql_error()); 
  while($row = mysql_fetch_array($result))
  {
  echo "<p>".$row['title']."</p>";
  echo "<p>".$row['description']."</p>";
  echo "<p>".$row['filename']."</p>";
  }
$result=mysql\u query(“从promo.id=items.promo\u id上的promo JOIN items中选择*,其中promo.id='$promo\u id'))或die('Error:'.mysql\u Error());
while($row=mysql\u fetch\u数组($result))
{
回声“”$row['title']。“

”; 回显“”$row['description']。“

”; 回显“”$row['filename']。“

”; }
最后,我想说以下几点:

  • 宣传片名称1

  • 这是宣传片1的描述,很棒吧

  • 文件名_1.jpg

  • 文件名_2.jpg,无论有多少文件链接到此促销列表

然而,根据上述查询,我得到:

  • 这是宣传片1的描述,很棒吧

  • 文件名_1.jpg

  • 这是宣传片1的描述,很棒吧

  • 文件名_2.jpg


所以它重复了一遍(我可以理解为什么),根本就没有把宣传片的“标题”扯进去!有人能推荐我的JOIN还是PHP的问题吗?非常感谢您的帮助:)

不要在查询中使用******,而要命名所需的列并应用正确的别名。

可能会显示说明和文件名,因为这些名称仅存在于其中一个表中,而title则存在于两个表中

如果使用查询:

SELECT 
     * 
FROM 
     promo JOIN items ON promo.id = items.promo_id WHERE promo.id='$promo_id'"
字段的名称必须采用table.field的方式。明确需要获取的字段的名称非常有用,可以帮助您获取所需的数据,而不是所有的表。这使得该方法可以更快地检索行并防止名称出现问题

您还可以使用“AS”语句指定列的名称 例如:

SELECT 
   promo.title AS title,
   promo.description AS description,
   items.filename AS filename
FROM 
    promo JOIN items ON promo.id = items.promo_id WHERE promo.id='$promo_id'"
你会得到一个表,比如(我在上面设置了想象中的数据):

小贴士:

  • 如果每个促销单上有多个项目,则每行上的所有数据都会重复

    • 您需要查询以显示每个促销的所有项目,而无需重复促销数据、进行更复杂的查询或添加一些代码
  • 如果您没有任何促销项目,则促销不会显示在列表中

    • 您需要使用list al promos和by each list自己的项目来显示没有项目的promos,或者使用外部联接查询

您的数据库是什么样子的?如果您在promo id上选择,它将只找到链接到该id的promo,我猜您有2个文件加入到promo 1中。我们可以查看
promo
表的结构吗?为什么,我刚刚写了一个非常长的问题和答案,涵盖了这个确切的问题和答案,我希望这将有助于澄清联接如何在表上工作,以及如何从数据库中的多个表中获取信息!
title | description | filename
-------------------------------
title1|description1 | filename1
title1|description1 | filename2
title2|description2 | filename3