2011-02-28 11 views
3

ifに関する問題が発生しました。 (mysql_query) 自分のデータベースで確認し、USERが存在しない場合はelse条件を実行します。そして、それは私が望むものではありません。 error_type(...); - >この機能は自分で作成する手動機能です。 でどの:ここPHPとMySQL(mysql_query)の問題

else{ 
    var_dump($response); 
    mysql_query("DELETE FROM info_compte WHERE username  ='$user'"); 

    echo "<pre>"; 
     echo "L'utilisateur <b>".$user."</b> a été supprimé avec succès!"; 
    echo "</pre>"; 
} 

は私の完全な機能である:あなたの提案

+0

の使用について、私は繰り返し、mysql_ *インタフェースを使用しないでくださいしないでください。 mysqliまたはPDOに切り替えます。これは廃止され、最新のPHPリリースで廃止されました。 –

答えて

2

Aのためのすべてに(error_typeのために私は、ファイルの先頭に必要です)

function db_delete($user, $site){ 

    $querycon = "SELECT username FROM info_compte WHERE username = '$user' AND siteWeb = '$site'"; 
    $response = mysql_query($querycon); 

    if($response > 0) 
     error_type(6, $user,""); 
    else { 
     var_dump($response); 
     mysql_query("DELETE FROM info_compte WHERE username ='$user'"); 
     echo "<pre>"; 
     echo "L'utilisateur <b>".$user."</b> a été supprimé avec succès!"; 
     echo "</pre>"; 
    } 

}//db_delete 

感謝0の結果を返すクエリが成功したため、$responsefalseになりません。

これを試してみてください:この数は、クエリは成功しましたが、結果はありませんでしたよりも0であれば

$querycon = "SELECT username FROM info_compte WHERE username = '$user' AND siteWeb = '$site'"; 
$response = mysql_query($querycon) 
if(mysql_num_rows($response) < 1){ 
... 

mysql_num_rowsは、クエリによって返される行の数を返します。

この例検討:最初の問合せselect * from data where id = "notHere";sql example

このクエリが成功したしかし、2番目のクエリselect * from data LIMIT 1;が成功したのに対し、0行を返し、1行を返します。

+0

私はそれをテストしています。 – HulkThor

+0

情報ありがとうございます。それは動作します:D 私はまだ担当者を追加することはできません..私は2つしか持っていないと15が必要です..私は4分笑で答えを受け入れます。 – HulkThor

+0

@HulkThor、問題はありません、そしてStack Overflowへようこそ。 – UnkwnTech

0

あなたの問題は、この行を次のとおりです。

if(!($response = mysql_query($querycon))){

何が起こっている、あなたがそれを否定、その後、mysql_queryに等しくなるように$responseを割り当てています。課題が働く限り、あなたはいつも偽に終わるでしょう。

代わりに、割り当て一度にfalseに比較を実行します。これにより

if($response = mysql_query($querycon) === false){

を、あなたは「mysql_queryの値に$responseを割り当て、falseに比べ言っています。

+0

これは正しくありません。 '$ response = mysql_query($ querycon)'が最初に評価され、$ responseが設定されていれば、$ responseは偽の状態になります。そして!(...)は(!$ response)と同じです。 – UnkwnTech

0

どのようにPHPのmysql_affected_rows