我使用下面的代码生成一个简单的HTML表格,显示接下来的90个日历日。在这个简单的表中,每一天都是一排。
$now = time();
echo "<table>";
for ($i=0;$i<90;$i++)
{
$thisDate = date("d/m/Y",$now + ($i*86400));
echo "<tr><td>".$thisDate."</td></tr>\n";
}
echo "</table>";
另外,我有一个包含以下字段的MySQL表:
event varchar(1000)
datescheduled date
如何在上述HTML表格中创建第二列,其中包含&#34; event&#34;从MySQL表中,与日期匹配?
答案 0 :(得分:0)
这可以通过多种方式解决。考虑这个例子:
PHP
<?php
$con = mysqli_connect("localhost","dbuser","dbpass","database");
$query = mysqli_query($con, "SELECT * FROM event");
// First build the array of events, put the dates in keys, then the values as events
$events = array();
while($result = mysqli_fetch_assoc($query)) {
$events[$result['datescheduled']] = $result['event'];
}
?>
// Structure should be something like this:
Array
(
[2014-05-02] => Day of lorem
[2014-06-02] => Day of ipsum
[2014-07-02] => Day of days
)
HTML
<!-- the compare selected values on the current loop, check its keys -->
<?php $now = time(); ?>
<table border="1" cellpadding="10">
<?php for($i=0;$i<90;$i++): ?>
<?php $thisDate = date("Y-m-d", $now + ($i*86400)); ?>
<tr>
<td><?php echo $thisDate; ?></td>
<td><?php echo array_key_exists($thisDate, $events) ? $events[$thisDate] : ''; ?></td>
</tr>
<?php endfor; ?>
</table>
答案 1 :(得分:-1)
$now = time();
echo "<table>";
for ($i=0;$i<90;$i++)
{
$thisDate = date("d/m/Y",$now + ($i*86400));
echo "<tr><td>".$thisDate."</td>";
$result_set = mysql_query("SELECT event FROM eventTable WHERE datescheduled = STR_TO_DATE('{$thisDate}','%d/%m/%Y')'",$connection);
$result = mysql_fetch_assoc($result_set);
echo "<td>{$result['event']}</td></tr>\n";
}
echo "</table>";
值得注意的是,你需要在mysql中使用字符串到日期函数,具体取决于日期的存储方式。
编辑:如果您需要进一步手持,这里是为您完成的STR_TO_DATE功能。
STR_TO_DATE('{$thisDate}','%d/%m/%Y')
我已经编辑了上面的代码,以反映这一点,不会让你的大脑紧张。
甚至在表格和输出的一些屏幕截图中,只是因为你在评论中有点蠢。凭借5年的经验,我本以为你会知道如何回应这样一个简单的表格,或者至少在有人试图帮助你的时候有一点共同的礼貌。