我正试图从我的usermeta表中获取依赖于某个provence的值。
我住在荷兰。我们这里有12个普罗旺斯,我想选择所有住在某个普罗旺斯的用户。所以我在用户数据库中添加了一个名为“provincies”的字段。值<a href="results.php?provincie=provencename"的按钮
告诉我根据url中的值选择谁。
这并不难。问题是用户可以有多个来源。
因此meta_键provincie字段保存meta_值friesland','groningen','drenthe'
所以现在我需要搜索url的附加值是否在数据库meta_value中。

$provincie_array = "friesland','groningen','drenthe";
$query = "SELECT *
          FROM $wpdb->usermeta
          WHERE meta_key='provincie'
          AND meta_value IN ('".$provincie_array."')";

我认为这是对的。不过,PHP和MySql有点不同。
有人能看到我在这里遗漏了什么吗?
-编辑-
$provincie = $_GET['provincie'];
                global $wpdb;
                //$query = "SELECT * FROM $wpdb->usermeta WHERE meta_key='provincie' AND meta_value IN ('".$provincie_array."')";

$provincie_array = array('friesland','groningen','drenthe','noordholland','flevoland','overijssel','zuidholland','utrecht','gelderland','zeeland','noordbrabant','limburg');
$provincie_check = '';
foreach ($provincie_array as $value) {
    $provincie_check[]="`meta_value` LIKE '%[{$value}]%'";
}
$query = "SELECT *
          FROM $wpdb->usermeta
          WHERE meta_key='provincie'
          AND ( ".implode(' OR ',$provincie_check)." )";
          $personen = $wpdb->get_results($query);

最佳答案

这会起作用的。。。:)
对于@Interactive:You设置$find_provincie=$_GET['provincie'];就这样。

$find_provincie = 'groningen'; //look for 1
$find_provincie = array('friesland','groningen'); //look for multiple


if(is_array($find_provincie)){
    $provincie_check = '';
    foreach ($find_provincie as $value) {
        $provincie_check[]="`meta_value` LIKE '%[{$value}]%'";
    }
    $provincie_check=implode(' OR ',$provincie_check);
}else{
    $provincie_check = "`meta_value` LIKE '%[{$find_provincie}]%'";
}

$query = "SELECT * FROM usermeta WHERE meta_key='provincie' AND ( ".$provincie_check." )";

如果将每个元素存储在[groningen][drenthe]这样的括号中,则测试并运行

09-25 19:17