php - MYSQL在PHP中仅询问第一排名时不返回结果

标签 php mysql

我正在尝试使用 PHP 从 MySQL 表中获取 1 条记录。我尝试了许多不同的 SELECT 语句,虽然它们都在 MYSQL 中工作,但它们拒绝在 php 中返回任何结果。

countryRanking 表是一个简单的两列表

country    clicks
------     ------
0        222
66       34 
175      1000
45       650

mysql 返回国家/地区列的排名(1、2、3 等),并且返回除排名第一的国家/地区之外的所有结果。例如,当country=175时,应该返回1,但不返回结果。通过网络浏览器直接查询返回空白页,没有错误信息。我的 PHP 代码

$result = mysql_query("SELECT FIND_IN_SET(clicks,
(SELECT GROUP_CONCAT(DISTINCT clicks  ORDER BY clicks DESC) 
FROM countriesRanking)) rank FROM countriesRanking
WHERE country = '$country'") or die(mysql_error());

$row =  mysql_fetch_assoc($result) or die(mysql_error());
$theranking = $row['rank'];
echo $theranking;

编辑

我尝试了以下操作,但得到了相同的空白页

var_dump($row['rank']);

编辑2

对于成功的查询,print_r($result) 返回类似资源 id #4 的内容。而 print_r($row) 返回数组 ( [0] => 4 [rank] => 4 )。但是当查询排名靠前的国家时。例如country=175,它返回一个空白页。

最佳答案

尝试一下。这是基于您之前的问题。 MYSQL returns empty result in PHP
MYSQL版本:

<?PHP
function rank(){
/* connect to database */
$hostname = 'server';
$user = 'username';
$password = 'password';
$database = 'database';

    $link = mysqli_connect($hostname,$user,$password,$database);

    /* check connection */

    if (!$link){ 
        echo ('Unable to connect to the database');
    }

    else{
    $query = "SELECT COUNT(*) rank FROM countryTable a JOIN countryTable b ON a.clicks <= b.clicks WHERE a.country = 175";
    $result = mysqli_query($link,$query);
    $arr_result =  mysqli_fetch_array($result,MYSQLI_BOTH); 
        return $arr_result['rank'];
    }
    mysqli_close($link);
}

echo rank();

?>

MYSQL版本:

<?PHP
function rank(){
  /* connect to database */
  $hostname = 'server';
  $user = 'username';
  $password = 'password';
  $database = 'database';

  $link = mysql_connect($hostname,$user,$password);

  /* check connection */

  if (!$link){ 
    echo ('Unable to connect to the database');
  }

  else{
  $query = "SELECT COUNT(*) rank FROM countryTable a JOIN countryTable b ON a.clicks <= b.clicks WHERE a.country = 66";
  mysql_select_db($database);
  $result = mysql_query($query);
  $arr_result = mysql_fetch_array($result,MYSQL_BOTH); 
  return $arr_result['rank'];
  }
  mysql_close($link);
}

echo rank();

?>

关于php - MYSQL在PHP中仅询问第一排名时不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14300868/

相关文章:

php - 使用 PHP 运行 C++ 代码

mysql - 每行内嵌套表格

php - 如何将json数组插入mysql数据库

MySQL 错误 1215 (HY000) : Cannot add foreign key constraint state_id

php - 在 PHP 中结帐后获取 PayPal 确认,无需框架

php - 是否有用于 PHP 集成的 ALIPAY API?

php - 如何获取逗号分隔值对应的记录?

php - MySQL计算降雨量

Mysql只选择指定数量的连续空闲时间段的员工

php - Mysql中断查询并从最新的ID开始另一个查询