使用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
和项
表的结构吗?为什么,我刚刚写了一个非常长的问题和答案,涵盖了这个确切的问题和答案,我希望这将有助于澄清联接如何在表上工作,以及如何从数据库中的多个表中获取信息!
title | description | filename
-------------------------------
title1|description1 | filename1
title1|description1 | filename2
title2|description2 | filename3