2016-07-11 16 views
0

私は結果に応じて条件を設定する変数にmysqlデータを挿入しようとしています。これは可能ですか、私はそれを正しくやっていますか?それを行う正しい方法は何ですか?私が達成したいのは、mysqlの行の中にユーザーによって与えられた等しい値があるかどうかを検証することです。可能?:条件にmysql行

$db = mysql_connect('localhost','test',''); 

if (!$db) 
{ 
    print "<h1>Unable to Connect to MySQL</h1>"; 
} 

$dbname = 'test'; 

$btest = mysql_select_db($dbname); 

if (!$btest) 
{ 
    print "<h1>Unable to Select the Database</h1>"; 
} 


$sql_statement = "SELECT * "; 
$sql_statement .= "FROM registered_email "; 


$result = mysql_query($sql_statement); 

$outputDisplay = ""; 
$myrowcount = 0; 

if (!$result) { 
    $outputDisplay .= "<br /><font color=red>MySQL No: ".mysql_errno(); 
    $outputDisplay .= "<br />MySQL Error: ".mysql_error(); 
    $outputDisplay .= "<br />SQL Statement: ".$sql_statement; 
    $outputDisplay .= "<br />MySQL Affected Rows: ".mysql_affected_rows()."</font><br />"; 
} 
else{ 
    $numresults = mysql_num_rows($result); 

    for ($i = 0; $i < $numresults; $i++) 
    { 



    $row = mysql_fetch_array($result); 

    $id = $row['id']; 
    $sentEmailClients = $row['email']; 

    $outputDisplay.= "".$sentEmailClients."<br />"; 
    } 

} 

とここで何イム達成しようと、ところで$ clientEmailはあるデフォルト値はそれほど心配いけないました。

if($clientEmail === $outputDisplay){ 

...... some codes.......... 
} 
else{ 
....... some codes....... 
} 
+1

ないような、より簡単な何かを行うことができますあなたがここで何を求めているか確かめてください。あなたはif文を必要とし、if文を私たちに与えましたか?そして、どこに '?:'入ってくるの?より具体的にしてください。 –

+0

よく私の条件が動作していないが、私は$ outputDisplayをエコーするときに私はすべてのデータを取得..私が望むのは、$クライアントが等しい値を持っているかどうかを確認する各データをチェックすることです。私は私の状態が1つの変数のすべてのデータを読み込むと思います。 – jmv

+0

電子メールを '$ outputDisplay'変数に追加して最後に'
'を追加すると、' $ outputDisplay'は決して1つの電子メールアドレスと等しくはありません期待しています。 –

答えて

1

あなたのユーザー入力と比較するには、mysqlの行を使用できます。ループ内の電子メールの行の値を取得しながら、条件を追加できます。

$email_exist = 0;//define the default value. 
    for ($i = 0; $i < $numresults; $i++) 
    { 
    $row = mysql_fetch_array($result); 

    $id = $row['id']; 
    $sentEmailClients = $row['email']; 

    $outputDisplay.= "".$sentEmailClients."<br />"; 

    //my code start here 
    if($sentEmailClients == $clientEmail) 
     $email_exist = 1; 
    } 
    //outside the loop 
    if($email_exist == 1) { 
    //..........write some code....... 
    }else{ 
    //........write some code....... 
    } 
+0

エラーが発生しますか?チェックできますか?結果セットはデータベースから得られましたか? –

+0

Sry、あなたのコードを間違って読んでいます。もう一度アップしました。 –

+0

しかし..これは、一致する電子メールが最後でない限り、常に '$ email_exists'を0として設定します。これはまだ動作しません。各反復で以前の値を上書きしています。 –

0

なぜwhileループを使用しないのですか?

mysql_ *は推奨されませんのでmysqli_ *に更新してくださいとPHPに削除されますしようとしている7.0

$email_exist = 0;//define the default value. 
    while ($row = mysql_fetch_assoc($result)) // you are using associative array and not the indexed once tho you should go for mysql_fetch_assoc 
    { 

    $id = $row['id']; 
    $sentEmailClients = $row['email']; 

    $outputDisplay.= "".$sentEmailClients."<br />"; 

    //my code start here 
    if($sentEmailClients == $clientEmail) 
     $email_exist += 1; //maybe it exist more than once? 
    } 
    //outside the loop 
    if($email_exist == 1) { 
    //..........write some code....... 
    }else{ 
    //........write some code....... 
    } 

か、この

$query = "select email from tablename where email='$clientemail'"; 
$result = mysql_query($query); 
$count = mysql_num_rows($result); 
if($count > 0) { 
// email exists 
} else { 
// doesn't exist 
} 
+0

私は後で確認します。両方 – jmv

+0


」「$ sentEmailClients。。」;それは
タグがすでに第二の例は、タイプミス申し訳ありませんがあった細かい作業をする必要があります 含まれているため、' outputDisplayは、クライアントのメールと同じではありません私はそれを編集した – jmv

+0

'$ outputDisplayを動作していない=「 –