2011-06-14 98 views
1

我有一個名爲$uid的變量,如果變量$ uid未包含在MySQL表的「loginid」字段中,我想打印一條消息「tweets 「在任何有另一個變量的行上,$submissionid。我認爲我的查詢$tweetquery沒問題。基本上,如果從「tweets」拉取的loginid變量永遠不等於$ uid,我希望消息回顯。如果查詢結果爲零,則顯示消息

我該怎麼做?

由於提前,

約翰

$tweetquery = "SELECT loginid 
       FROM tweets 
       WHERE submissionid = '$submissionid'"; 


    $tweetresult = mysql_query($tweetquery);   

    if... 

echo '<div>Message</div>'; 
+0

有關使用PDO和SQL注入的義務性意見。 – cwallenpoole 2011-06-14 20:26:34

回答

3

看一看mysql_num_rows($result)

if (mysql_num_rows($result) > 0) 
{ 
    // Do something 
} 
else 
{ 
    echo 'No results'; 
} 
+0

@cwallenpoole在上面說得很好。您應該將查詢重寫爲'$ tweetquery =「SELECT loginid FROM tweets WHERE submissionid ='」。 mysql_real_escape_string($ submissionid)。 「'」;'。參見[http://php.net/manual/en/function.mysql-real-escape-string.php](http://php.net/manual/en/function.mysql-real-escape-string.php ) 更多細節。 – 2011-06-14 20:34:20

1

mysql_num_rows()返回從數據庫獲取的行數。如果獲取的行是零個echo消息。

$tweetquery = "SELECT loginid 
      FROM tweets 
      WHERE submissionid = '$submissionid'"; 


$tweetresult = mysql_query($tweetquery);   

if(mysql_num_rows($tweetresult) > 0){ 
    // your results here 
} else { 

    echo '<div>Message</div>'; 
} 
1
if(mysql_num_rows($tweetresult) == 0) 
    echo "<div>Message</div>"; 
else { 
    //Do something if $uid was found 
} 
2

叫我瘋了,但使用mysql_num_rows是不是我會做這樣的方式。如果沒有返回任何東西,mysql_fetch_array不會做任何破壞性的事情,所以請照常調用。

$row = mysql_fetch_array($resource); 
if(!$row) 
{ 
    //do what you would do if the query returned nothing 
} 
else 
{ 
    do 
    { 
     // do what you would do with the row 
    } while($row = mysql_fetch_array($resource)); 
} 

mysql_num_rows的問題是,它實際上代表了對數據庫中的電話詢問如何在指針存在許多行。坦率地說,這是一個不必要的來回,可以很容易地避免。那麼爲什麼不避免呢?