2011-07-08 6 views
0

私はコードを実行しようとしていますが、私に間違った結果が与えられているようです。ここでは、次のとおりです。mysql_num_rowsが0の結果を返すときに文が認識されない場合

//compares vid num to db been result 
$id = mysql_real_escape_string(@$_GET['g']); 
$vid = mysql_real_escape_string(@$_GET['v']); 
$sql= mysql_query("SELECT videos.* FROM videos WHERE videos.email = 
       (SELECT email FROM page WHERE page.user_id = '$id') 
        AND videos.videoid = '$vid'"); 

if (mysql_num_rows($sql) == 0) { echo "none";} else echo "it exists"; 

私はphpMyAdminの中でクエリを実行する場合、それは正しい動作しますが、PHPで実行すると、結果がofffffで、それが正しいか0を返しphpMyAdminの場合でも、それが存在するエコー続けます。私はこれを理解しようとしており、何も得ていない。私は何か反対に、!isset($sql)を試してみました。

+1

ために皆さんに感謝します。 –

+1

'$ id'変数はどこに定義されていますか?あなたのサブクエリは結果を返さないようです。最新のエラーメッセージを取得するには、mysql_error関数を使用してください。 –

+0

それは定義されています、コード – user621799

答えて

4
if ($sql) // valid result 
{ 
    if (mysql_num_rows($sql) > 0) // more than 0 records 
     echo "it exists"; 
    else 
     echo "none"; 
} 

上記のコードでも問題が解決しない場合は、mysqlクエリの中に結果が見つかりました。

+0

を参照してください。私は同じことを試みました。しかし、なぜphpMyAdminではそれが正しくクエリされますか? – user621799

+0

これは動作します、あなたの助けを借りてくれてありがとう $ vid = mysql_real_escape_string(@ $ _ GET ['kjvid']); $ id = mysql_real_escape_string(@ $ _ GET ['pid']); $ kjvid = mysql_query( "SELECTビデオ。*、page.email FROMビデオLEFT JOINページON page.email = videos.email WHERE page.user_id = '$ id' AND videos.videoid = '$ vid'"); if(mysql_num_rows($ kjvid)== 0){echo "none";} else "それが存在する"; – user621799

0

この作品、あなたが `mysql_query`は、有効な「結果」を返すかどうかを確認していないあなたの助け

$vid = mysql_real_escape_string(@$_GET['kjvid']); 
$id = mysql_real_escape_string(@$_GET['pid']); 
$kjvid = mysql_query("SELECT videos.*, page.email FROM videos LEFT JOIN page ON page.email = videos.email WHERE page.user_id = '$id' AND videos.videoid = '$vid'"); 
if (mysql_num_rows($kjvid) == 0) { echo "none";} else echo "it exists"; 
関連する問題