2012-12-27 18 views
0

我查詢數據庫使用此命令:循環只能如果有一個返回行

$result = mysql_query("SELECT * FROM users WHERE country = '$_SESSION[country]' AND city = '$_SESSION[city]' ORDER BY id DESC"); 
if(mysql_num_rows($result) == 1) { 
    while($row = mysql_fetch_array($result)) { 
    echo "OK"; 
    $n = 1; 
    echo '<div class="control-group"> 
      <div class="controls"> 
      <label class="checkbox"> 
      <input type="checkbox" name="users" value="'.$row['id'].'" onclick="\'chkcontrol('.$n++.')\';">'.$row['name'].' 
      </label> 
      </div> 
      </div>'; 
    } 
} 

它返回True(作品),如果我在表中只有一行。如果我添加另一個,它將返回False。我錯過了什麼?

+1

[**在新的代碼,請不要使用'mysql_ *'功能**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

回答

2

if(mysql_num_rows($result) == 1)肯定是if(mysql_num_rows($result) >= 1)

否則if只會是真實的(和循環進入)時mysql_num_rows($result)正是1

解決。

+1

或者只是'if(mysql_num_rows($ result)){'真的。 –

0

你用會話變量查詢似乎不正確,應該是

$result = mysql_query("SELECT * FROM users WHERE country = '{$_SESSION['country']}' AND city = '{$_SESSION['city']}' ORDER BY id DESC");