<? require("connection.php"); ?>
<? require("tools.php"); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>按发布人+时间搜索全站文章</title>
<? if($addedit_subed!="true"){ //********************** ?>
<script language="JavaScript" src="check.js"></script>
<script LANGUAGE="javascript">
<!--
function add_onsubmit(add) {
//if (!checkvalue(add.title,0,0,1,"标题")) return false;
//if (!checkvalue(add.writer,0,0,1,"发布人")) return false;
}
//-->
</SCRIPT>
<? } //*************************************************?>
<style type="text/css">
<!--
body,td,th {font-size: 12px;}
-->
</style></head>
<body bgcolor="#FFFFFF">
<? require("top.inc"); ?>
<form method=GET action=renaiask_list.php name=add LANGUAGE=javascript onSubmit="return add_onsubmit(this)">
<div align=center>
<table width=562 border=0 align="center" cellpadding=0 cellspacing=1>
<tr>
<td>
发布人:
<select name="writer" size=1  class=fstyle>
<option value="">请选择</option>
<option value="123">123</option>
<option value="456">456</option>
<option value="admin">admin</option>
</select>
选择时间:
<select name=YYYY onChange="YYYYDD(this.value)">
<option value="">请选择 年</option>
</select>
<select name=MM onChange="MMDD(this.value)">
<option value="">选择 月</option>
</select>
<select name=DD>
<option value="">选择 日</option>
</select>
<script language="JavaScript">
<!--
function YYYYMMDDstart()
{
MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];//先给年下拉框赋内容
var y = new Date().getFullYear();
for (var i = (y-30); i < (y+30); i++) //以今年为准,前30年,后30年
document.add.YYYY.options.add(new Option(" "+ i +" 年", i));//赋月份的下拉框
for (var i = 1; i < 13; i++)
document.add.MM.options.add(new Option(" " + i + " 月", i));document.add.YYYY.value = y;
document.add.MM.value = new Date().getMonth() + 1;
var n = MonHead[new Date().getMonth()];
if (new Date().getMonth() ==1 && IsPinYear(YYYYvalue)) n++;
writeDay(n); //赋日期下拉框Author:meizz
document.add.DD.value = new Date().getDate();
}
if(document.attachEvent)
window.attachEvent("onload", YYYYMMDDstart);
else
window.addEventListener('load', YYYYMMDDstart, false);
function YYYYDD(str) //年发生变化时日期发生变化(主要是判断闰平年)
{
var MMvalue = document.add.MM.options[document.add.MM.selectedIndex].value;
if (MMvalue == ""){ var e = document.add.DD; optionsClear(e); return;}
var n = MonHead[MMvalue - 1];
if (MMvalue ==2 && IsPinYear(str)) n++;
writeDay(n)
}
function MMDD(str) //月发生变化时日期联动
{
var YYYYvalue = document.add.YYYY.options[document.add.YYYY.selectedIndex].value;
if (YYYYvalue == ""){ var e = document.add.DD; optionsClear(e); return;}
var n = MonHead[str - 1];
if (str ==2 && IsPinYear(YYYYvalue)) n++;
writeDay(n)
}
function writeDay(n) //据条件写日期的下拉框
{
var e = document.add.DD; optionsClear(e);
for (var i=1; i<(n+1); i++)
e.options.add(new Option(" "+ i + " 日", i));
}
function IsPinYear(year)//判断是否闰平年
{ return(0 == year%4 && (year%100 !=0 || year%400 == 0));}
function optionsClear(e)
{
e.options.length = 1;
}
//-->
</script> 
<input type=submit value="提交"  name=B1 class=fstyle>
</td>
</tr>
</table>
</div>
</form>
<? require("bottom.inc"); ?>
</body>
</html>

解决方案 »

  1.   

    我的时间字段是:senddate
    读取的时间格式是:1275633295
    如何能准确的按日期搜索出我想要搜索的文章呢?
      

  2.   

    你数据库存的是时间戳,将你前台取的数据转化一下between and 就行了
      

  3.   

    $sql="select * from dede_archives where senddate between mktime(time()) and mktime(time())";
    我这样加了一句  没有反应啊
    指教哦  真的非常感谢了啦
    问题解决我立即给分哦
      

  4.   

    搜索不是你这么操作的$str = $_GET['DD'] . '-' . $_GET['MM'] . '-' . $_GET['YYYY'];
    $time = strtotime($str); //这才是时间戳$sql="select * from dede_archives where senddate>$time"; 
    //大于OR小于,根据你的需要,当然加上其他条件like,什么的你自己加
      

  5.   

    我是说,上面between mktime(time()) and mktime(time()),这里mktime格式有问题,得到的并非你需要的时间戳另外这两个东东显然一样的,你能搜索啥结果呢?
      

  6.   


    <form method=GET action=renaiask_list.php name=add LANGUAGE=javascript onSubmit="return add_onsubmit(this)">
    <select name="writer" size=1>
    <option value="">请选择</option>
    <option value="admin">admin</option>
    <option value="123">123</option>
    <option value="456">456</option>
    </select><select name="senddate" id="senddate"  size=1>
    <option value="">请选择</option>
    <option value="<? echo strtotime("2010-06-04 14:34:55");?>">2010年6月4日</option>
    </select>
    <input type=submit value="提交"  name=B1 class=fstyle>
    我写成这样都没有办法搜索到我想要的文章
    这是为什么啊?
    <? echo strtotime("2010-06-04 14:34:55");?> 这个时间读出来是:1275633295
    是和我数据库的senddate字段中是一样的呀
    为什么会搜索不出来呢?
      

  7.   

    你把时间选早一些,sql语句你要搜索设定时间之前,就<$time,反之>再试试
    再不行,不要搜索echo $sql;打印出语句,贴上来看看
      

  8.   


    这$sql注释掉,用上面3句替换,再试试看,有没有结果,时间上选早点,我不知道你都有那些数据
      

  9.   

    我还是贴出来吧
    <? require("connection.php"); ?>
    <? require("tools.php"); ?>
    <? //require("checkpass.php"); ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>按发布人+时间搜索全站文章</title>
    <? if($addedit_subed!="true"){ //********************** ?>
    <script language="JavaScript" src="check.js"></script>
    <script LANGUAGE="javascript">
    <!--
    function add_onsubmit(add) {
    //if (!checkvalue(add.title,0,0,1,"标题")) return false;
    //if (!checkvalue(add.writer,0,0,1,"发布人")) return false;
    }
    //-->
    </SCRIPT>
    <? } //*************************************************?>
    <style type="text/css">
    <!--
    body,td,th {font-size: 12px;}
    -->
    </style></head>
    <body bgcolor="#FFFFFF"><?php 
    //$timestamp = "1275272026";   
    //$timestamp = preg_replace( "/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ ", "\\1-\\2-\\3 \\4:\\5:\\6 ",$timestamp); //格式化成标准日期格式  
    //$timestamp = strtotime($timestamp); //转化成unix时间戳 ?><? require("top.inc"); ?>
    <form method=GET action=renaiask_list.php name=add LANGUAGE=javascript onSubmit="return add_onsubmit(this)">
    <?
    $str = $_GET['DD'] . '-' . $_GET['MM'] . '-' . $_GET['YYYY'];
    $time = strtotime($str); //时间戳$sql="select * from dede_archives where senddate>$time"; 
    ?> 
    <div align=center>
    <table width=562 border=0 align="center" cellpadding=0 cellspacing=1>
    <tr>
    <td>
    发布人:
    <select name="writer" size=1  class=fstyle>
    <option value="">请选择</option>
    <option value="123">123</option>
    <option value="456">456</option>
    <option value="admin">admin</option>
    </select>
    选择时间:
    <select name=YYYY id=senddate onChange="YYYYDD(this.value)">
    <option value="">请选择 年</option>
    </select>
    <select name=MM onChange="MMDD(this.value)">
    <option value="">选择 月</option>
    </select>
    <select name=DD>
    <option value="">选择 日</option>
    </select>
    <script language="JavaScript">
    <!--
    function YYYYMMDDstart()
    {
    MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];//先给年下拉框赋内容
    var y = new Date().getFullYear();
    for (var i = (y-30); i < (y+30); i++) //以今年为准,前30年,后30年
    document.add.YYYY.options.add(new Option(" "+ i +" 年", i));//赋月份的下拉框
    for (var i = 1; i < 13; i++)
    document.add.MM.options.add(new Option(" " + i + " 月", i));document.add.YYYY.value = y;
    document.add.MM.value = new Date().getMonth() + 1;
    var n = MonHead[new Date().getMonth()];
    if (new Date().getMonth() ==1 && IsPinYear(YYYYvalue)) n++;
    writeDay(n); //赋日期下拉框Author:meizz
    document.add.DD.value = new Date().getDate();
    }
    if(document.attachEvent)
    window.attachEvent("onload", YYYYMMDDstart);
    else
    window.addEventListener('load', YYYYMMDDstart, false);
    function YYYYDD(str) //年发生变化时日期发生变化(主要是判断闰平年)
    {
    var MMvalue = document.add.MM.options[document.add.MM.selectedIndex].value;
    if (MMvalue == ""){ var e = document.add.DD; optionsClear(e); return;}
    var n = MonHead[MMvalue - 1];
    if (MMvalue ==2 && IsPinYear(str)) n++;
    writeDay(n)
    }
    function MMDD(str) //月发生变化时日期联动
    {
    var YYYYvalue = document.add.YYYY.options[document.add.YYYY.selectedIndex].value;
    if (YYYYvalue == ""){ var e = document.add.DD; optionsClear(e); return;}
    var n = MonHead[str - 1];
    if (str ==2 && IsPinYear(YYYYvalue)) n++;
    writeDay(n)
    }
    function writeDay(n) //据条件写日期的下拉框
    {
    var e = document.add.DD; optionsClear(e);
    for (var i=1; i<(n+1); i++)
    e.options.add(new Option(" "+ i + " 日", i));
    }
    function IsPinYear(year)//判断是否闰平年
    { return(0 == year%4 && (year%100 !=0 || year%400 == 0));}
    function optionsClear(e)
    {
    e.options.length = 1;
    }
    //-->
    </script> 
    <input type=submit value="提交"  name=B1 class=fstyle>
    </td>
    </tr>
    </table>
    </div>
    </form>
    <? require("bottom.inc"); ?>
    </body>
    </html>
      

  10.   

    哎,LZrenaiask_list.php内容贴出来
      

  11.   

    哦 好的  抱歉<? require("connection.php"); ?>
    <? require("tools.php"); ?>
    <? //require("checkpass.php"); ?>
    <?
    $search = "";if($writer<>""){
    if($search==""){
    $search .= " WHERE ";
    }else{
    $search .= " AND ";
    }
    $search .= " writer = '" . $writer . "' ";
    }if($senddate<>""){
    if($search==""){
    $search .= " WHERE ";
    }else{
    $search .= " AND ";
    }
    //$search .= " senddate = '" . $senddate . "' ";
      $search .= " senddate = '" . $timestamp . "' ";
      
    $senddate=$_GET["senddate"];

    }$table="dede_archives";$sql="select * from " . $table . $search." order by id DESC";//请参考下面代码排序
    //$sql="select * from " . $table . $search  ." order by dtime DESC";//echo $sql;exit();$result=mysql_query($sql);$pagesize=100;  //每页记录条数$result_num=mysql_num_rows($result);if($result_num<=0){
    if($search==""){
    $word="目前还没有记录!";
    }else{
    $word="没有查到符合条件的记录!";
    }

    }else{ $maxpage=ceil($result_num/$pagesize); if(is_long($page) or $page==""){
    $page=1;
    }else{
    $page=(int)($page);
    }

    if($page<1){
    $page=1;
    }else if( $page>$maxpage){
    $page=$maxpage;
    }

    mysql_data_seek($result,($page-1)*$pagesize);
    $n=1;
    }?>
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <link rel="stylesheet" href="style.css">
    <title></title>
    </head><body bgcolor="#FFFFFF" topmargin="0" leftmargin="0">
    <? require("top.inc"); ?><? if($result_num<=0){ ?><center><BR><BR><? print($word); ?></center><? }else{ ?> <?
    $str = $_GET['DD'] . '-' . $_GET['MM'] . '-' . $_GET['YYYY'];
    $time = strtotime($str); //时间戳$sql="select * from dede_archives where senddate>$time"; 
    ?> 
    <table width="598" border="0" cellspacing="2" cellpadding="0" align="center">
      <tr>
        <td>共搜索到<font color="#FF0000"><? print($result_num); ?></font>条符合条件的信息</td>
      </tr>
    </table>
    <table width="600" border="0" cellspacing="1" cellpadding="0" align="center">
      <tr align=center bgcolor=#97D0FB>
        <td><b>ID</b></td>
        <td><b>标题</b></td>
        <td><b>发布人</b></td>
        <td><b>发表时间</b></td>  </tr>
    <? while($row = mysql_fetch_array($result)){ ?>   
      <tr bgcolor=#EEF8FD>
        <td  align=center><a href="renaiask_show.php?id=<? print($row["id"]); ?>"><? print(HtmlOut($row["id"])); ?></a></td>
        <td  align=center><? print(HtmlOut($row["title"])); ?></td>
        <td  align=center><? print(HtmlOut($row["writer"])); ?></td>
        <!--<td  align=center>< ? echo $senddate=date('Y-m-d H:i:s',(HtmlOut($row["senddate"]))); ?></td>-->
    <td  align=center><? echo $senddate=date('Y-m-d',(HtmlOut($row["senddate"]))); ?></td>  </tr>
    <? $n++;if(!($row = mysql_fetch_array($result)) || $n > $pagesize) break; ?>
      <tr bgcolor=#D7EFFB>
        <td  align=center><a href="renaiask_show.php?id=<? print($row["id"]); ?>"><? print(HtmlOut($row["id"])); ?></a></td>
        <td  align=center><? print(HtmlOut($row["title"])); ?></td>
        <td  align=center><? print(HtmlOut($row["writer"])); ?></td>
        <td  align=center><? echo $senddate=date('Y-m-d',(HtmlOut($row["senddate"]))); ?></td>  </tr><? $n++;if($n > $pagesize) break;}  ?> 
    </table>
    <? LastNextPage($maxpage,$page,"width=100% ","<p  align=center class=font2>"); ?><? } ?>
    <? require("bottom.inc"); ?>
    </body>
    </html>
    能加我的QQ么?我的QQ:86861014
      

  12.   

    //这三句你先删掉,不能乱加的,我只是给你参考
    $str = $_GET['DD'] . '-' . $_GET['MM'] . '-' . $_GET['YYYY'];
    $time = strtotime($str); //时间戳$sql="select * from dede_archives where senddate>$time"; 
    接下来要修改的地方
    // $search .= " senddate = '" . $timestamp . "' ";//这句前面加上//,然后在后面添加
    $str = $_GET['DD'] . '-' . $_GET['MM'] . '-' . $_GET['YYYY'];
    $time = strtotime($str);$search .= " senddate >" . $time;//说明,我看原来语句,时间条件用的是=,按说这个字段不应该是个时间戳,我建议你先看看基础吧,共同学习
    //
      

  13.   

    热心的amani11朋友
    我按照你说的做了
    能搜出文章内容了,但是会把所有日期的全部搜出来
    还有什么地方需要修改么?
    能加我的QQ么?86861014 谢谢
      

  14.   

    我是说时间戳,你前面不是有senddate这个字段么?,你不是说里面的值类似于1275633295这样的?
    把文章其中一篇这个数值改小了,再测试一下
      

  15.   

    <option value="<? echo strtotime("2009-07-13 15:50:48");?>">2009年7月13日</option>
    是这吗?
    我把文章时间改成2009-07-13 15:50:48了
    像这样直接写option中的value值,不通过js传值的下拉框,也搜索不出文章  超级郁闷啊
      

  16.   

    字段:senddate
    类型:int(10) 
    属性:UNSIGNED
    Null:否
    默认:0这是我的senddate字段设置请问我要怎么改啊?
    怎么改小  把什么改小啊?
    请指教  谢谢
      

  17.   

    类型:int(10) 
    难道是改这个长度值么?
      

  18.   

    女孩子适合做程序员吗,PHP最好的开发工具