我正在尝试使用 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/