如果表行具有值,则发送回消息

时间:2014-04-29 08:11:45

标签: php mysql

例如,有这样的查询:

<?php
$sql  = "INSERT INTO oppgave    
    (username, besvarelse, modulid) 
    VALUES
    ('$username', '$besvarelse', '$modulid');
    ";

    mysql_query($sql, $tilkobling);
?>

我该怎么做:

如果modulid行不为空,请回显“您之前已发送此模块”;

2 个答案:

答案 0 :(得分:2)

试试这个:

<?php
$sql  = "INSERT INTO oppgave(username, besvarelse, modulid) 
         select '$username', '$besvarelse', '$modulid'
         from dual
         where not exists (select modulid from oppgave where modulid='$modulid')";

$result=mysql_query($sql, $tilkobling);
if(mysql_affected_rows()==0){
      echo "Failed to insert duplicate modulid";
}else{
      echo "inserted";
}
?>

在此SQL查询中,只有在数据库表中不存在$modulid时才允许插入。您也可以通过将UNIQUE约束应用于表列来处理这种情况(但请记住,它一次允许NULL值)

答案 1 :(得分:1)

执行此操作的最佳方法是不允许重复。
您可以使用SQL QUERY执行此操作。

通过以下方式构建查询:

 $sqlString ="INSERT INTO oppgave('" . $username . "', '" . $besvarelse . "', '" . $modulid . "')
    SELECT username, besvarelse, modulid
    FROM oppgave
    WHERE NOT EXISTS (SELECT *
                      FROM oppgave
                      WHERE modulid IS NULL)";

请先检查所有名称和表名;)
希望这会有所帮助。

如果这个答案,请标记为答案。