UNION ALLを使用しているときに、SQLクエリの結果をリンクとしてエコーする際に問題が発生します。
テーブルは次のようになります。
表:投稿
IDユーザー名日付コメント表:ファイル
IDユーザー名日付ファイル
「ファイル」行には、アップロードされたファイルへのURLが含まれています。
結果を表示するために私が持っているコード:
<?php
$sql="SELECT * FROM posts
UNION ALL
SELECT * FROM files
ORDER BY date DESC LIMIT 100";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
?>
<div> <?php echo $rows['comment']; ?> </div>
<div> <a href="<?php echo $rows['file']; ?>"><?php echo $rows['file']; ?></a> </div>
<?php
}
?>
これで、すべてが正しい順序で並べ替えられますが、ファイル名はリンクとして表示されず、プレーンテキストのみが表示されます。ファイルテーブルのみでクエリを実行した場合、リンクをエコーアウトして問題はありません。
大きな問題は、UNIONALLクエリの結果をリンクとしてどのように表示するかということだと思います。