0

複数のクエリを相互に使用するのに大きな問題があります。私はそれを検索しましたが、必要なものを見つけることができませんでした! これは私の問題です。助けてください。

「cat」という名前のテーブルがあり、mysql でタイトルを取得しても問題ありません。「Cat_ID」という名前のフィールドを持つworksという名前の別のテーブルがあります。これは、両方のテーブルのデータを接続するフィールドです。works テーブルには "Years" という別のフィールドがあり、これはアートワークの制作年です。

猫 >> { ID , タイトル , ... } 作品 >> { ID , タイトル , URL , 年 , Cat_ID , ... }

作品のギャラリーを年ごとに分類する必要があるため、次のようなコードを作成しました。

<?php
$result = q("cat");
while($row = mysqli_fetch_array($result)) { ?>
  <div>
    <h2><a href="artwork.php?id=<?php echo $row['ID'] ?>"> <?php echo $row['Title']; ?></a></h2>
    <span>
    <?php
      $sql = "SELECT DISTINCT Year FROM works WHERE Cat=".$row['Cat_ID'];
      $yresult = mysql_query($sql);
      while ($yrow = mysql_fetch_row($yresult)) 
      {
        //and print it as anchor here but it wont get into loop at all!                         
      }                         
    ?>
    </span>
  </div>
<?php } ?>

q() は、DB に接続してクエリを実行するだけの関数です。この行はかなりうまく機能します。だけど全然奥まで入ってこない!$yrowが完全に空であることを確認しました(phpのEMPTY()による)!私はそれについて何ができますか?mysql は 2 番目のクエリをまったく実行できないようです。解決策は、私が考える2つの方法でなければなりません。1. mysql で 2 番目のクエリを実行します。2. 最初のクエリを変更して、年を明確に取得し、mysql_fetch_array で読み取り、for each を介して年をアンカーとして配置します。

助けてください。

4

1 に答える 1