Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL在数据库中从数组中获取位置_Php_Sql_Database - Fatal编程技术网

Php SQL在数据库中从数组中获取位置

Php SQL在数据库中从数组中获取位置,php,sql,database,Php,Sql,Database,我正在制作一个记分牌,它将全球、地区和国家分开。我在全球和国家工作。以下是我获取每个国家的数字的代码: $euCountries = array('AL', 'AD', 'AM', 'AT', 'BY', etc....); if (in_array($CountryCode, $euCountries)) { $region = 'EU'; } $countryRankSql = "SELECT name, FIND_IN_SET(xp, ( SELECT GROUP_C

我正在制作一个记分牌,它将全球、地区和国家分开。我在全球和国家工作。以下是我获取每个国家的数字的代码:

$euCountries = array('AL', 'AD', 'AM', 'AT', 'BY', etc....);

if (in_array($CountryCode, $euCountries)) { $region = 'EU'; }

$countryRankSql = "SELECT name, FIND_IN_SET(xp, (
         SELECT GROUP_CONCAT(xp ORDER BY xp DESC) 
         FROM users WHERE countrycode = :CountryCode ) ) AS rank 
     FROM users WHERE id = :id";
$countryRankGet = $db->prepare($countryRankSql);
$countryRankGet->execute(array(
 ':CountryCode' => $CountryCode,
 ':id' => $id,
));
$countryRank = $countryRankGet->fetch()['rank'];
现在我想做同样的事情,但是数组中的多个CountryCodes(例如$euCountries)在哪里。因此,基本上与country sql相同,仅在
where countrycode=:countrycode
是一系列的国家


如何执行此操作?

在不转换为数组的情况下,获取相同的字符串,并在select语句中使用它:

SELECT name, FIND_IN_SET(xp, (SELECT GROUP_CONCAT(xp ORDER BY xp DESC) FROM users WHERE countrycode in ($euCountries) ) ) AS rank FROM users WHERE id = :id

差不多就是这样。

我可以把数组(“:euCountries”=>$euCountries,”)放进去吗;在我的执行线上?我不知道你为什么要这么做。SELECT语句只是一个字符串。而已经用引号括起来并用逗号删除的国家清单已经是正确的了。那有什么意义呢?