Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP呈现内部连接的SQL数据?_Php_Mysql_Sql - Fatal编程技术网

如何使用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>';

?>