2011-07-08 90 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,它使呼應phpMyAdmin的回報0這是正確的,當它甚至存在。我一直在試圖弄明白這一點,並一直沒有得到。我已經嘗試!isset($sql)相反的東西。

+1

你不檢查'mysql_query'返回一個有效的「結果」。 –

+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 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」; – user621799

0

這工作,感謝你們的幫助

$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";