在互联网上花了3天并且在这么多不同的论坛上挣扎之后,我在这里找到了一个匹配和类似的问题。
朋友们,我在PHP中是零,但我仍然设法做了一些事情来满足我的要求。
我现在遇到了一件事......所以我需要帮助......
我使用一个html + php表单将数据库提交到mysql。 我通过网页上的php脚本创建了该表的显示。 现在我想在显示的页面上有一个datepicker选项,通过它我可以选择日期范围并从我的mysql表中显示该日期范围的数据。 然后在excel中导出显示所选日期范围的数据。
这个显示的页面是登录保护的,所以我想在登录后接下来的东西应该显示一个状态选择选项,该选项应该是从日期到日期,然后记录应该从数据库中显示,我可以导出那些显示的结果是excel文件。 我在这个页面上使用的代码如下所示,excel导出和日期选择器脚本没有包含任何内容,我在这里粘贴代码并要求您根据需要在其中包含所需的代码。
提前致谢
<?php
//database connections
$db_host = 'localhost';
$db_user = '***********';
$db_pwd = '*************';
$database = 'qserves1_uksurvey';
$table = 'forms';
$file = 'export';
if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");
if (!mysql_select_db($database))
die("Can't select database");
// sending query
$result = mysql_query("SELECT * FROM {$table} ORDER BY date desc");
if (!$result) {
die("Query to show fields from table failed");
}
$num_rows = mysql_num_rows($result);
$fields_num = mysql_num_fields($result);
echo "$num_rows";
echo "<h1></h1>";
echo "<table border='1'><tr>";
// printing table headers
for($i=0; $i<$fields_num; $i++)
{
$field = mysql_fetch_field($result);
echo "<td>{$field->name}</td>";
}
echo "</tr>\n";
// printing table rows
while($row = mysql_fetch_row($result))
{
echo "<tr>";
// $row is array... foreach( .. ) puts every element
// of $row to $cell variable
foreach($row as $cell)
echo "<td>$cell</td>";
echo "</tr>\n";
}
mysql_free_result($result);
?>
</body></html>
答案 0 :(得分:6)
这不是“为我编写我的代码,请”网站,因此您需要更具吸引力和更积极主动。但我们当然可以提供一些指导。我们看看......
目前您有一个显示给定表中所有记录的页面,这是正确的吗?你需要做两件事:
对于其中任何一个,您将需要向页面添加实际表单。目前没有一个。对于日期选择器,我建议(自然地)使用jQuery UI datepicker。所以形式如下:
<form method="POST" action="myPHPFile.php">
<input type="text" id="fromDate" name="fromDate" />
<input type="text" id="toDate" name="toDate" />
<input type="submit" name="filterDate" value="Submit" />
</form>
<script>
$(function() {
$("#fromDate").datepicker();
$("#toDate").datepicker();
});
</script>
您可能必须将JavaScript包装在$(document).ready(){}
中以使其正常工作,您需要对其进行测试。无论如何,这将为您提供一个表单,以便将日期提交到您的脚本。包装脚本中以条件形式输出数据的部分,以确定是否存在表单值。如果他们不是,请不要取任何记录。如果是,请执行一些基本的输入检查(确保值是有效值,确保fromDate
在toDate
之前等等)并构造SQL查询以按日期范围过滤。 (请注意避免SQL注入漏洞。)
对于Excel输出,您may be able to find为您提供了一个现成的解决方案,只需要稍微修补一下。如果我是从头创建一个,我可能只输出到.csv
文件而不是完整的Excel文件。大多数用户不了解/关心差异。在这种情况下,您只需要创建与现有脚本几乎相同的第二个脚本,或者在现有的脚本之间添加一个标记,该标记在HTML和CSV输出之间切换,例如通过隐藏的表单字段。
对于CSV的输出,首先请务必设置response headers。您需要编写一个标题来告诉浏览器您输出的是CSV文件而不是text/html
,并且可能会建议要保存的浏览器的文件名。然后,表单输入SQL查询将与以前几乎完全相同。唯一的区别在于输出的“HTML”。您可以用逗号,双引号(适当时)和回车来包装记录,而不是HTML标记。
输出“文件”与“HTML”并没有什么特别之处,因为HTTP协议在两者之间没有区别。它总是带有标题的文本。
现在,我相信你对此有更多疑问。那没关系。事实上,我们希望鼓励在这里提出(当然,回答)问题。因此,请随时在对此答案(或其他答案)的评论中,或通过编辑和完善您的原始问题,或通过询问一个全新的问题(如果您有特定主题需要帮助)来要求澄清。理想情况下,Stack Overflow上的一个好问题包括您尝试编写的示例代码,代码应该执行的操作的说明,代码实际结果输出的描述以及与代码相关的任何有用信息。就目前而言,您的问题提供的代码与您提出的问题有些无关,而您只是要求我们为您直接添加一些功能。