複数のクエリを相互に使用するのに大きな問題があります。私はそれを検索しましたが、必要なものを見つけることができませんでした! これは私の問題です。助けてください。
「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 を介して年をアンカーとして配置します。
助けてください。