我编写了一个脚本,根据用户下载的country_code匹配来自数据库的相应记录(奖励)。一切都有效,直到有两个具有相同名称和不同国家/地区字段的记录。我希望基于用户代码的这些重复项是互斥的,但我两天都无法实现这种效果。
让我们说用户的country_code是" US" 有两个匹配的记录
[描述] ="提供1" [国家] ="美国,DE"
[描述] ="提供1" [countries] =" All"
如果用户的country_code位于国家/地区字段中,我希望不会显示所有内容。如果它与country_code不匹配,我希望显示所有报价。此外,应为每个country_code显示所有带有All标记且没有重复项的商品。
我怎样才能做到这一点?
<?php
function getRewards($dbh) {
$stmt = $dbh->prepare("SELECT `description`, `countries` FROM `sample_table`");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
}
function checkCountry($data, $user) {
$countries = explode(",", $data);
if(in_array($user["country_code"], $countries) || in_array("All", $countries)) {
return true;
} else {
return false;
}
}
// for testing i get this value from database
$user["country_code"] = "US";
foreach(getRewards($dbh) as $reward) {
if(checkCountry($reward["countries"], $user)) {
echo $reward["description"];
} else {
continue;
}
}
?>