使用MySQL数据填充HTML表,按日历日期链接

时间:2014-05-02 02:10:13

标签: php html mysql

我使用下面的代码生成一个简单的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表中,与日期匹配?

2 个答案:

答案 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年的经验,我本以为你会知道如何回应这样一个简单的表格,或者至少在有人试图帮助你的时候有一点共同的礼貌。

Table

Output