急!!有一连串的问题带你解决!在线等!

$result = mysql_query("SELECT rpt_date FROM RptGuestDaily");
  if(!mysql_query($result,$con)){
  $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{
  $sql="UPDATE RptGuestDaily SET post_cnt='$post'
  WHERE Date='$Date'";
  if (!mysql_query($sql,$con)){
  die('Error: ' . mysql_error()."<br>");
  }else{echo "Data insert complete.";}
  }

我想要当没有这个日期时,他会insert新资料进table.
但是有这个日期是他会根据当时的日期,update资料。
像是今天又多少人post新贴。27/5/2011 post的人有OOXX

作者: miehunyou   发布时间: 2011-05-27

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

作者: pkpptoo   发布时间: 2011-05-27

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

作者: sibang   发布时间: 2011-05-27

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

作者: miehunyou   发布时间: 2011-05-27

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

作者: miehunyou   发布时间: 2011-05-27

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

作者: jordan102   发布时间: 2011-05-27

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

作者: miehunyou   发布时间: 2011-05-27

把表的结构发出来,这错误提示貌似是主键冲突啊

作者: chendong_j   发布时间: 2011-05-27

难道我想要‘如果这个主键有了就update’是不行的吗?
PHP code
$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.";}
}


难道这样不对吗?

作者: miehunyou   发布时间: 2011-05-27

rpt_date是主键

作者: miehunyou   发布时间: 2011-05-27

引用 6 楼 miehunyou 的回复:
还是一样。Error: Duplicate entry '2011-05-27' for key 'PRIMARY'
我不是有写如果有了就update吗?怎么走不了?


表结构问题

作者: wbandzlhgod   发布时间: 2011-05-27

引用 8 楼 miehunyou 的回复:
难道我想要‘如果这个主键有了就update’是不行的吗?

PHP code
$result = mysql_query("SELECT rpt_date FROM RptGuestDaily"); //检查是否有这个rpt_date
if(!$result){//没有的话就insert
$sql="INSERT INTO RptGuestDaily (rpt_date,……


+1

作者: wbandzlhgod   发布时间: 2011-05-27

$result = mysql_query("SELECT rpt_date FROM RptGuestDaily"); //检查是否有这个rpt_date
你并没有指定待匹配的 rpt_date 的值

if(!$result){//没有的话就insert
即便没有也不会返回假,只不过结果集长度为0

对于你的这种应用,只需执行一句
$sql = "REPLACE INTO RptGuestDaily (rpt_date,post_cnt,view_cnt) VALUES ('$Date','$post','$view')";
即可!

作者: xuzuning   发布时间: 2011-05-27

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

作者: chendong_j   发布时间: 2011-05-27

我的是有人post新帖,$post就加1。replace用不了了吧?
更搞笑的是Error: Unknown column 'rpt_date' in 'where clause'

名字是copy paste出来的会是unknow...还是另有意思...

作者: miehunyou   发布时间: 2011-05-27