Pra*_*hai -1 php mysql datepicker export-to-excel
在互联网上度过了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>
Run Code Online (Sandbox Code Playgroud)
这不是"为我编写我的代码,请"网站,因此您需要更具吸引力和更积极主动.但我们当然可以提供一些指导.让我们来看看...
目前你有一个显示给定表中所有记录的页面,这是正确的吗?你需要做两件事:
对于其中任何一个,您将需要向页面添加实际表单.目前没有一个.对于日期选择器,我建议(自然地)使用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>
Run Code Online (Sandbox Code Playgroud)
您可能必须将JavaScript包装$(document).ready(){}在一起才能使其正常工作,您需要对其进行测试.无论如何,这将为您提供一个表单,以便将日期提交到您的脚本.包装脚本中以条件形式输出数据的部分,以确定是否存在表单值.如果他们不是,请不要取任何记录.如果是,请执行一些基本的输入检查(确保值是有效值,确保fromDate在之前toDate等等)并构造SQL查询以按日期范围进行过滤.(请注意避免SQL注入漏洞.)
对于Excel输出,您可能能够找到一个现成的解决方案,只需要一点点修补.如果我是从头开始创建一个,我可能只输出一个.csv文件而不是一个完整的Excel文件.大多数用户不了解/关心差异.在这种情况下,您只需要创建与现有脚本几乎相同的第二个脚本,或者在现有的脚本之间添加标记,该标记在HTML和CSV输出之间切换,例如通过隐藏的表单字段.
对于CSV的输出,请首先确保设置响应标头.您需要编写一个标题来告诉浏览器您输出的是CSV文件而不是text/html,并且可能建议要保存的浏览器的文件名.然后,表单输入SQL查询将与以前几乎完全相同.唯一的区别在于输出的"HTML".您可以用逗号,双引号(在适当的位置)和回车来包装记录,而不是HTML标记.
输出"文件"与"HTML"并没有什么特别之处,因为HTTP协议在两者之间没有区别.它始终只是带有标题的文本.
现在,我相信你对此有更多疑问.那没关系.事实上,我们希望鼓励在这里提出(当然,回答)问题.因此,请随时在对此答案(或其他答案)的评论中,或通过编辑和完善您的原始问题,或通过询问一个全新的问题(如果您有特定主题需要帮助)来要求澄清.理想情况下,Stack Overflow上的一个好问题包括您尝试编写的示例代码,代码应该执行的操作的说明,代码实际结果输出的描述以及与代码相关的任何有用信息.就目前而言,您的问题提供的代码与您提出的问题有些无关,而您只是要求我们为您直接添加一些功能.