0

助けを求めています。結果を照会する必要がある 3 つのテーブルがあります。テーブルモデルではmodel_idmodelを、テーブルの色ではcolour_idcolourを、テーブルの可用性では と を持っていmodel_idますcolour_id。結果を表形式でエコーアウトする必要があります。表には、モデル、色、在庫状況が表示されている必要があります。在庫状況セクションでは、モデルが特定の色で入手可能である場合は、yes の値を表示/返す必要があり、そうでない場合は no を表示する必要があります。現在のコードは次のとおりです。

$sql = "SELECT model, colour FROM model, colour";  
   $query = "SELECT * FROM availability";    

   $result = mysql_query($sql);

   $res =mysql_query($query);

 echo "<table border='1'><trbgcolor='#cccccc'><td>Model</td><td>Colour</td><td>Availability</td></tr>";

    while($row = mysql_fetch_array($result))
    {
      $model=$row['model'];
      $colour=$row['colour'];

      echo "<tr><td>$model</td><td>$colour</td>";

      while($row = mysql_fetch_array($res))
      {
        $avail_id=$row['avail_id'];
        $model_id=$row['model_id'];
        $colour_id=$row['colour_id'];
      }


      if($res)
      {
        echo "<td>Yes</td>";
      }
      else
      {
        echo "<td>No</td></tr>";
      }
    } 

  echo "</table>";
4

1 に答える 1

0
SELECT m.model, c.colour, IF(c.colour_id IN (SELECT a.colour_id FROM availability a WHERE a.model_id = m.model_id), "YES", "NO") FROM model m, colour c ORDER BY m.model, c.colour

これにより、必要な結果が得られるはずです。出力を好みに合わせてフォーマットするだけです。

于 2013-07-30T10:25:53.687 に答える