本帖最后由 miehunyou 于 2011-05-27 09:29:41 编辑

解决方案 »

  1.   

    if(empty($Date))
    {
      $sql="insert..........";
    }
    else
    {
      $sql="update...........";
    }
      

  2.   

    你這不都已經寫好了嗎?你想問什麼?
    順便說一下,想提升自己的水平,或將來容易維護,所以最好是用class來寫php
    即,面向對象編程
      

  3.   

    不用select吗?从table拿出来的耶...
      

  4.   

    我遇到Duplicate entry '2011-05-27' for key 'PRIMARY'的问题。class的事情先过了这关之后才有机会去想。
      

  5.   

    你第一行不是有了mysql_query,所以第二行的mysql_query去掉。改为if(!$result){}
      

  6.   

    还是一样。Error: Duplicate entry '2011-05-27' for key 'PRIMARY'
    我不是有写如果有了就update吗?怎么走不了?
      

  7.   

    难道我想要‘如果这个主键有了就update’是不行的吗?
    $result = mysql_query("SELECT rpt_date FROM RptGuestDaily"); //检查是否有这个rpt_date
       if(!$result){//没有的话就insert
         $sql="INSERT INTO RptGuestDaily (rpt_date,post_cnt,view_cnt) 
             VALUES ('$Date','$post','$view')";
         if (!mysql_query($sql,$con)){
             die('Error: ' . mysql_error()."<br>");
         }else{echo "Data insert complete.";}
    }else{//有的话就update
         $post++;
         $sql="UPDATE RptGuestDaily SET post_cnt='$post'
             WHERE rpt_date='$Date'";
         if (!mysql_query($sql,$con)){
             die('Error: ' . mysql_error()."<br>");
         }else{echo "Data insert complete.";}
    }难道这样不对吗?
      

  8.   

    本帖最后由 xuzuning 于 2011-05-27 10:23:50 编辑
      

  9.   

    如果不需要保留原有信息的话,12楼得方法可行。
    否则还是先查找一下指定的rpt_date,然后再update吧
    $result = mysql_query("SELECT rpt_date FROM RptGuestDaily"); //检查是否有这个rpt_date
    你并没有指定待匹配的 rpt_date 的值,即缺少where 查询条件
      

  10.   

    我的是有人post新帖,$post就加1。replace用不了了吧?
    更搞笑的是Error: Unknown column 'rpt_date' in 'where clause'名字是copy paste出来的会是unknow...还是另有意思...
      

  11.   

    别管14楼的。我的$post加不到。我不懂要写在那里让它已有人post的时候它就++。
    我好想写到它一直是0。所以我每次++他都一直是1。要怎么办
      

  12.   

    你把$post++去掉,$sql="UPDATE RptGuestDaily SET post_cnt=post_cnt+1 WHERE rpt_date='$Date'";
    这样,程序每执行一次。指定时间的post_cnt就加1 。
      

  13.   

    那么insert的$post也要去掉吗?
    还有最上面的,也就是作出$post的也要去掉?
    也就是说全部$post都去掉吗?那么怎么显示?
      

  14.   

    好了行了!
    现在是view.
    怎么才算是被view过?这面出现就
    $result = mysql_query("SELECT rpt_date FROM RptGuestDaily WHERE rpt_date='$Date'");
    if($result){
        $sql="UPDATE RptGuestDaily SET view_cnt=view_cnt+1
            WHERE rpt_date='$Date'";
        if (!mysql_query($sql,$con)){
            die('Error: ' . mysql_error()."<br>");
        }else{echo "Data insert complete.";}
    }
    这样吗?好像有点不对...
      

  15.   

    view也好了!!另一个问题!
    在table我要怎么插入‘小时’。
    比如说11点内有XX人post过,有OO人view过。
    12点内有.....
    之类的。
    insert的时候
    $sql="INSERT INTO RptGuestHourly (rpt_date,rpt_time,post_cnt,view_cnt) VALUES ('$Date','$Time','$post','$view')";insert $Time只是我的猜测。这样对吗?取得时间在$Date=date('Y-m-d H:i:s');要如何拿hour出来?
    我直接print_r($Date);是出来全部。我想要拿小时的呢?只是拿小时.
      

  16.   

    获取当时post的小时呢?
    print_r(date("H",$Date));我这样拿到的却是08,现在明明是11= =
      

  17.   

    是啊,别说时间了...date("Y/m/d", $row['CreateDate'])我这样得到的是1970/01/01
      

  18.   

    行了!!做到了!!是之前唠叨兄说过的tab上面的`。
    $Date=date('Y-m-d');
    print_r(date("D,M d,Y H:i:s".`$Date`));就做到了!!