0

让我首先说明您将看到我仍在此问题中使用一些 Mysql 代码。这只是因为我是 PDO 的新手并且为了排除故障,我想确保我的 sql 和查询正常工作,所以我使用了我所知道的。一旦我让函数工作并且脚本运行,我将转换为 PDO。

这是我的问题。我正在提交一个为用户订阅电子邮件列表(数据库)的表单。它获取他们的所有信息并将其插入数据库。到目前为止,这一切都有效。然后我的回调函数应该检查这个用户是否已经在数据库中。

我正在测试是否根据将电子邮件列设置为唯一列从数据库返回了一行。问题是即使用户已经在数据库中,sql 也会返回一行“重复条目”,因此我的代码正在读取 DUPLICATE ENTRY 行。有人可以指出我正确的方向吗?

我的 jQuery 代码...

$('#contForm').submit(function() {       //contForm is the name of my form
var formData = $(this).serialize();
$.post('contact.php',formData,dispAdd);      //dispAdd is the callback
    function dispAdd(result) {
      if (!result) {
        $('#main').html('<div>Your have been added to the mailing list</div>');
     } else {
       if ($('#fail').length==0) {
            $('#main').append('<div id="fail">This email address is already subscribed to our mailing list</div>');
            }
          }
        }
return false;

});

我的 PHP/SQL 脚本

function dispAdd()
{
 $email= $_POST['email'];
 $sql= "SELECT * FROM mailList WHERE email = '$email'";
 $result= mysql_query($sql) or die(mysql_error());
 $rows = array();
 if(mysql_num_rows($result) > 0)
{
 while ( $row = mysql_fetch_assoc($result)) {
 $rows[] = $row;
   }            
 echo json_encode( $rows );
 }
4

1 回答 1

0

在玩了更多之后,我想出了如何让它发挥作用,但如果有人有其他提示或想法,我很高兴听到他们。我在这里学到了很多东西,所以欢迎大家发表评论。这是我如何使它工作的:

function dispAdd()
{
 $email= $_POST['email'];
 $sql= "SELECT * FROM mailList WHERE email = '$email'";
 $result= mysql_query($sql) or die(mysql_error());
 if(mysql_num_rows($result) > 0)
    {
 while ( $row = mysql_fetch_assoc($result)) {
                                             }            
 return;
     }
}
于 2013-03-13T15:56:57.683 回答