-1

3 つのテーブルがあり、1 つは他の 2 つのテーブルへの「リンク」として機能します。私が達成しようとしているのはこれです

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-Coloursような名前に名前を変更することをお勧めしProduct_Coloursます。

于 2012-10-15T15:48:15.093 に答える
0

答えは、 「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 に答える