如何使用PHP呈现内部连接的SQL数据?
我有三个表,其中一个表充当其他两个表的“链接”。我想要达到的是如何使用PHP呈现内部连接的SQL数据?,php,mysql,sql,Php,Mysql,Sql,我有三个表,其中一个表充当其他两个表的“链接”。我想要达到的是 Products Num|Product_Code 1 | HVTE 2 | HVTT 3 | HV31 4 | HV11 Colours Num|Colour|Image 1 Yellow Yellow Image link 2 Orange Orange Image link 3 Pink Pink image link Product-Colours P_Num | Colour_N
Products
Num|Product_Code
1 | HVTE
2 | HVTT
3 | HV31
4 | HV11
Colours
Num|Colour|Image
1 Yellow Yellow Image link
2 Orange Orange Image link
3 Pink Pink image link
Product-Colours
P_Num | Colour_Num
1 1
1 2
2 1
我希望实现的是,如果p_Num=Products.Num和color_Num=colors.Num在屏幕上输出彩色图像
我对PHP相当陌生,所以如果可能的话,我需要一个非常全面的解释
提前感谢如果我理解正确,您需要的是给定产品编号的产品颜色。您需要做的只是将关联表与颜色表连接起来。即:
SELECT
Colour
FROM
Colours
JOIN
`Product-Colours`
ON
Colours.Num = `Product-Colours`.Colour_Num
WHERE
`Product-Colours`.P_Num = # The Product Number
请注意,使用
-
命名表会强制您引用带有反勾号的表名。。。在我看来,这有点烦人,因此将产品颜色
重命名为类似产品颜色
的名称可能是一个好主意。答案可以通过谷歌搜索,这是搜索时的第一个列表
您应该能够读取mysql安全的列和表名称(命名约定),因为您选择的名称将导致错误,这将使您在调试时感到头疼。你可以用那些名字,但你不应该
如果这个答案不完美,请花费一些精力修改它以满足您的需要,然后提出一个具体的问题。我不理解这个问题,这是关于算法的吗?中间表称为“关联”表。另外,请阅读主键和外键。这个问题与PHP没有任何关系,除了如何解释SQL结果。这是我使用PHP制作的一个网页,用于与MySQL数据库通信。我知道什么是PK和FK,我试图实现的是根据列匹配输出存储在“colors”表中的图像。
<?php
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "SELECT `Image` as prod_colour_img_link FROM Colours JOIN `Product-Colours` ON Colours.Num = `Product-Colours`.Colour_Num WHERE `Product-Colours`.P_Num = ".$prod_num;
mysql_query($query);
$num=mysql_numrows($result)
echo '<ol>';
$i=0;
while ($i < $num) {
$prod_colour_img_link = mysql_result($result,$i,"Colour");
echo '<li><img src="'.$prod_colour_img_link.'" /></li>';
$i++;
}
echo '</ol>';
?>