下面的代码与带有两列的HTML表相呼应:第一列有日期,第二列有预定日期的交易。它只显示即将到来的90天的日期。
有些日期没有交易,HTML表省略了这些日期。我怎么能把它们包括进去呢?我想“交易”栏只是空白的计划外日期。
$sqlStr = "SELECT c.date, d.deal, d.datescheduled
FROM calendar_table c
JOIN deals d ON d.datescheduled = c.dt
WHERE c.dt > NOW()
ORDER BY c.dt ASC
LIMIT 90";
$arr = array();
echo "<table class=\"samplesrec\">";
while ($row = mysql_fetch_array($result)) {
echo '<tr style="border-left:0px solid #C9C9C9; border-right:0px solid #C9C9C9; border-top:0px solid #C9C9C9;" class="class3a">';
echo '<td class="sitename1"><a href="http://www.domain.com/login/deal.php?dealid='.urlencode($row["dealid"]).'">'.$row["date"].'</a> </td>';
echo '<td class="sitename1"><a href="http://www.domain.com/login/deal.php?dealid='.urlencode($row["dealid"]).'">'.$row["deal"].'</a> </td>';
}
echo '</tr>';
echo "</table>"; 发布于 2014-05-10 05:39:20
您需要更改查询以执行左连接,而不是内部连接:
$sqlStr = "SELECT c.date, d.deal, d.datescheduled
FROM calendar_table c
LEFT JOIN deals d ON d.datescheduled = c.dt
WHERE c.dt > NOW()
ORDER BY c.dt ASC
LIMIT 90";这使得MySQL可以获取calendar_table中的所有行,而不管交易中是否存在匹配的行。
然后,检查数组中的空单元格,然后写一个空单元格:
if ($row["deal"]==null)
echo '<td></td>';
else
echo '<td class="sitename1"><a href="http://www.domain.com/login/deal.php?dealid='.urlencode($row["dealid"]).'">'.$row["deal"].'</a> </td>';https://stackoverflow.com/questions/23576335
复制相似问题