Php 循环仅在返回一行时有效

Php 循环仅在返回一行时有效,php,loops,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

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

$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>';
  }
}
$result=mysql\u query(“从用户中选择*,其中country='$'会话[country]”和city='$'会话[city]'按id顺序描述”);
if(mysql_num_rows($result)==1){
while($row=mysql\u fetch\u数组($result)){
回音“OK”;
$n=1;
回声'
“.$row['name']”
';
}
}
如果表中只有一行,则返回True(有效)。如果我再添加一个,它将返回False。我缺少什么?

如果(mysql\u num\u rows($result)==1)
必须是
如果(mysql\u num\u rows($result)>=1)

否则,
if
仅在
mysql\u num\u rows($result)
正好为1时才为true(并输入循环)


已解决。

您对会话变量的查询似乎不正确,应该正确

$result = mysql_query("SELECT * FROM users WHERE country = '{$_SESSION['country']}' AND city = '{$_SESSION['city']}' ORDER BY id DESC");
. 它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。或者只是
If(mysql_num_rows($result)){
真的。