【发布时间】:2016-07-24 08:36:40
【问题描述】:
我有一个记录表。允许用户根据事件发生的日期输入数据。表格变成了这样:
ID Date Name Hrs
1 2016-03-01 Username 8
2 2016-03-02 Username 8
3 2016-03-03 Username 9
4 2016-03-04 Username 10
…
31 2016-03-31 Username 8
- 我希望能够显示用户未输入的日期(即使没有记录)。
-
我还想显示表格中的所有记录,将它们分成几周。像这样的:
Day Date Name HrsMon 2016-03-01 Username 8 Tue 2016-03-02 Username 8 Wed 2016-03-03 Username 9 Thu 2016-03-04 Username 10 Fri 2016-03-05 Username 10 Sat 2016-03-06 - Sun 2016-03-07 Username 10 Mon 2016-03-08 Username 8 Tue 2016-03-09 - Wed 2016-03-10 - Thu 2016-03-11 - Fri 2016-03-12 Username 10 Sat 2016-03-13 - Sun 2016-03-15 Username 10 ... ... ... Mon 2016-03-30 Username 8 Tue 2016-03-31 Username 8
下面是我的代码:
<?php
...Connection to DB...
$query="SELECT *
FROM Table_I
ORDER BY DATEPART(wk,date) as wk
";
$params = array($_REQUEST['query']);
$results = sqlsrv_query($conn, $query, array(), array( "Scrollable" => 'static' ));
if($results===false)
{ die( FormatErrors( sqlsrv_errors() ) ); }
$rows = sqlsrv_num_rows($results);
$array = array();
while ($row = sqlsrv_fetch_array($results, SQLSRV_FETCH_ASSOC))
{
$array[] = $row;
}
?>
<html>
<head></head>
<body>
<table border="1">
<?php
for($a=0; $a<$rows; $a++)
{
echo '<tr><td>'.$array[$a]['wk'].'</td>';
echo '<td>'.date("l", strtotime($array[$a]['date'])).'</td>';
echo '<td>'.date('d M Y', strtotime(strip_tags($array[$a]['date']))). "</td>";
echo '<td>'.strip_tags($array[$a]['name'])."</td>";
echo '<td>'.strip_tags($array[$a]['hrs'])."</td>";
}
</body>
</html>
它打印正常,但不包括用户未输入的日期,也没有将其分解为每周。我对编程很陌生,但它很有趣。
拜托,非常感谢您的帮助。
【问题讨论】:
-
你用的是什么版本的sql-server?
-
@FLICKER Sql-server 2008
-
@Uday 你能帮忙吗?
标签: php sql sql-server