mysql_query("INSERT INTO books(txt) VALUES ('$post')");//$post为表单输入传递的值;如何在插入判断txt的字段空或非空后再插入数据库?
条件一:当txt字段为空,原本插入表单传递过来的值;
条件二:当txt字段已经有内容,先正则删除最后4个字符,再输入表单传递过来的值。

解决方案 »

  1.   

    你这个逻辑有问题,txt是字段,它有可能有很多记录,插入数据会增加记录而不是修改txt字段。
    你的要求难道是txt字段有记录的时候,难道你要更新所有的记录?
      

  2.   

    抱歉,是我写的时候漏写了。补充一下,还有一个$user_id,用户名。txt的数据库格式是txtmysql_query("INSERT INTO books(id, txt) VALUES ('$user_id', '$post')");//$post为表单输入传递的值;$user_id是SESSION判断用户登陆名我的意思是没插入一条记录,更新该用户相应的数据库记录。
    接下来用判断是否NULL或者有,2种方式UPDATE数据库。
      

  3.   


    if (mysql_query("SELECT * FROM books where txt IS NULL INSERT INTO books VALUES ('$user_id', '$post')"));
    else (mysql_query("update books set txt=(concat(left(txt,char_length(txt)-4),'$post'))where id=$user_id"));我自己网上看了教程,拼凑了一段,结果$post值插不进去。
    可能代码太混乱,希望哪位可以指点一下。
      

  4.   

    逻辑不对,应该是这个逻辑,具体SQL语句你可能要调试一下:
    $result = mysql_query("SELECT * FROM books where txt IS NULL INSERT INTO books VALUES ('$user_id', '$post')");
    if(mysql_num_rows($result) > 0 ){
        $result = mysql_query("update books set txt=(concat(left(txt,char_length(txt)-4),'$post'))where id=$user_id");
    }else{
        $result = mysql_query("INSERT INTO books(id, txt) VALUES ('$user_id', '$post')");
    }
      

  5.   

    if(mysql_num_rows($result) > 0 ){
    感谢,但是这行提示错误……Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:\www\mix\insert.php on line 30