0

まず、この質問で私がまだ Mysql コードを使用していることを確認しようとしていることを述べさせてください。これは、私が PDO を初めて使用するためであり、トラブルシューティングを行うために、SQL とクエリが機能していることを確認したかったため、知っていることを使用しました。関数が機能し、スクリプトが実行されるようになったら、PDO に変換します。

これが私が持っている質問です。ユーザーを電子メール リスト (データベース) に登録するフォームを送信しています。すべての情報を取得し、DB に挿入します。これまでのところ、これはすべて機能します。私のコールバック関数は、このユーザーがすでにDBにいるかどうかを確認することになっています。

一意の列として設定されている電子メール列に基づいて、DB から行が返されるかどうかをテストしていました。問題は、ユーザーが既に DB にいる場合でも、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 に答える