-1

我有三张桌子,一张充当其他两张的“链接”。我想要实现的是这个

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 和 Colour_Num = Colours.Num 在屏幕上输出彩色图像。

我对 PHP 还很陌生,所以如果可能的话,我需要一个相当彻底的解释。

提前致谢

4

2 回答 2

0

如果我正确理解您,您想要的是给定产品编号的产品颜色。您需要做的只是将关联表与颜色表连接起来。那是:

SELECT 
  Colour
FROM
  Colours
JOIN
  `Product-Colours`
ON
  Colours.Num = `Product-Colours`.Colour_Num
WHERE
  `Product-Colours`.P_Num = # The Product Number

请注意,使用-命名表会强制您用反引号引用表名......在我看来这有点烦人,所以重命名Product-ColoursProduct_Colours.

于 2012-10-15T15:48:15.093 回答
0

可以通过谷歌搜索找到答案,例如使用 this page,这是您搜索“php mysql example”时的第一个列表。

<?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>';

?>

您应该阅读 mysql 安全的列和表名(命名约定),因为您选择的名称会导致您在调试时头疼的错误。你可以使用这些名字,但你不应该。

如果此答案不完美,请花一些精力对其进行修改以满足您的需求,然后提出一个具体问题。

于 2012-10-15T20:16:52.157 回答