次のクエリは機能しますが、何らかの理由で、最初のselectステートメントが表示されている唯一のURLです。他のテーブルのアイテムは表示されますが、URLが間違っています。
$sql = "(SELECT postsID as postsID, postsSubject AS postsSubject, postsTimestamp AS timestamp
FROM posts
WHERE postsCategory = '$id')
UNION
(SELECT eventID as eventID, eventTitle as eventTitle, eventsTimestamp as timestamp
FROM events
WHERE eventLocation = '$id')
ORDER BY timestamp DESC";
情報はイベントテーブルと投稿テーブルの両方から正しく表示されていますが、結果は投稿テーブルからのみ取得されているように見えます。
たとえば、次の情報があるとします
postsID | postsSubject | postsTimestamp
1 post 123
eventID | eventTitle | eventsTimestamp
2 event 456
結果を表示するには、次のものがあります
while($row = mysql_fetch_assoc($result)){
?>
<tr><td><? echo '<a href="viewevent.php?eventID=' . $row['eventID'] . '">' . $row['eventTitle'] . '</a>' ; ?></td>
<tr><td><? echo '<a href="viewpost.php?postID=' . $row['postsID'] . '">' . $row['postsSubject'] . '</a>' ; ?></td>
<?
if(preg_match('/[0-9]/',$row['timestamp'])){
list($yyyy,$dd,$mm) = explode('-',$row['timestamp']);
$newDate = $dd."-".$mm."-".$yyyy;
}
?>
<td><center><? echo $newDate; ?></center></td></tr>
<?
}
echo '</table>';
}
出力は正しいようです
post 123
event 456
ただし、両方の結果は(それぞれ)以下にリンクしています
viewpost.php?id = 1
viewpost.php?id = 2 //this should be viewevent.php