2012-01-19 11 views
1

PHP/MYSQL配列で助けが必要です。Mysql Array結果が見つかりません

は、私はこのような文字列からユーザーを選択し、PHPスクリプトを持っている: [email protected][email protected][email protected]

私はいくつかのregistratedユーザーがいるMySQLデータベースを持っています彼らの電子メールのアドレスを提示する。 スクリプトは、メールアドレスは、このような行に存在しているかどうかを確認する必要があります。

$splitdata = for example: [email protected], [email protected], [email protected] 

$sql= mysql_query("SELECT * FROM `users` WHERE `email` IN ('".join("','", $splitdata)."')") or die ('Error: '.mysql_error()); 

それから私は、MySQLとの結果が得られ、配列フェッチ:結果を得るために

while($result = mysql_fetch_array($sql)) {  
$email = $result['email']; 

を私は値を挿入します別のテーブルにしかし、行内で見つかる可能性がある電子メールのアドレスについてのみ。私は必要なもの

私はテーブルで見つけられなかったユーザーの電子メール住所がに電子メールを送信します。ソフトウェアへの招待状。これは現在、見つけられたユーザーにしか機能しませんが、私は見つけられなかった人に別のアクションを実行する必要があります。

同じMYSQLフェッチにする必要はありません。私は、データベースに見つからなかったすべてのメールアドレスの別のmysqlフェッチを作成できます。私はいくつかのコード例やこれを行う方法を知っている人が必要です。

現在、私は試してみませんでしたが、見つけられたものを除いて、リスト内のすべてのユーザーの結果が届きました。その結果は、見つからなかった電子メールアドレスでなければなりません。

+1

(a)MySQLには配列がありません。 (b)MySQLとPHPはまったく無関係の技術です... –

+0

mysql拡張機能は古くなっており、廃止予定です。新しいコードでは、mysqliまたはPDOを使用する必要があります。どちらも準備済みの文のサポートなどの重要な利点があります。 HTMLを出力するときに['or die'](http://www.phpfreaks.com/blog/or-die-must-die)を使わないでください。無効なHTMLが表示されます。 – outis

+0

管理者以外のユーザーにデータベースエラーメッセージを出力する[あまりにも多くの情報を公開](http://msdn.microsoft.com/en-us/library/ms995351.aspx#securityerrormessages_topic2)代わりに、MySQLのエラーメッセージを記録してください。一部のエラー(欠落値や無効な値など)については、[エラーメッセージ](http://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AppleHIGuidelines/Windows/Windows.html)を出力してください。 #// apple_ref/doc/uid/20000961-TP10)をユーザに提示し、ユーザがそれに対処するために取ることができるアクション。それ以外の場合は、内部エラーが発生したことをユーザーに通知します。 – outis

答えて

0

INの代わりにNOT INを試しましたか?

+0

このようにしますか? \t $ sql = mysql_query( "SELECT * FROM'ユーザ 'は'電子メール 'は( ''、 ''、 '$ splitdata)' ')")またはdie(' Error: '。mysql_error()); \t \t \t \t \tながら($結果=は、mysql_fetch_array($のSQL)){\t \t \t \t \t \t \t \t $ finalemail = $結果[ 'メール']。 – user983511

0

だから基本的に、あなたの$splitdata

に含まれていないすべてのユーザーを探しているあなたはNOT INを試みたことがありますか?

$sql= mysql_query("SELECT * FROM `users` WHERE `email` NOT IN ('".join("','", $splitdata)."')") or die ('Error: '.mysql_error()); 
+0

現在、NOT INを試していますが、見つけられたものを除いて、リスト内のすべてのユーザーの結果が表示されます。その結果は、見つからなかった電子メールアドレスでなければなりません。 – user983511

関連する問題