循环仅在返回一行时有效

时间:2012-12-27 00:52:25

标签: php loops

我正在使用此命令查询数据库:

$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。我错过了什么?

2 个答案:

答案 0 :(得分:2)

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

否则当if正好为1时,mysql_num_rows($result)只会为真(并且输入循环)。

解决。

答案 1 :(得分:0)

使用会话变量的查询似乎不正确,应该是

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