gpt4 book ai didi

php - 当仅要求第一个排名时,MYSQL 不会在 PHP 中返回结果

转载 作者:行者123 更新时间:2023-11-29 01:43:05 24 4
gpt4 key购买 nike

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

countriesRanking 表是一个简单的两列表

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) 返回了类似 Resource id #4 的内容。而 print_r($row) 返回数组( [0] => 4 [rank] => 4 )。但是在查询排名靠前的国家时。例如 country=175,它返回一个空白页。

最佳答案

试一试。它基于您之前的问题。 MYSQL returns empty result in PHP
MYSQLI版本:

<?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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com