PHP / MySQL在数组中搜索特定值

时间:2015-03-24 08:59:06

标签: php mysql arrays wordpress search

在WordPress环境中,我正在创建代表公司页面的页面。 这些公司页面出售某些品牌。所以我在元数据库中创建了一个自定义表单,让用户动态添加字段以添加他们销售的品牌数量。这些值存储在我的数据库中的数组中。

我现在遇到的问题是我想创建某种过滤器。 我创建了一个页面,显示了可能的品牌徽标的所有图像。这些徽标具有添加了自定义值(品牌名称)的链接。 例如:

<a href="somepage.php?brand='brandname'"><img src="brandname.jpg"></a>

在接下来的页面上,我执行get请求以检索添加到url的值。有了这个价值,我想展示所有销售该品牌的公司。

最后一部分是问题。我不知道如何在数组中搜索添加到URL的值。

所以我想我需要一个SQL语句来SELECT * FROM $wpdb->postmeta WHERE数据库meta_key字段= 'brand'meta_value = GET['brand']来自该网址在array

中找到

- 更新 -
所以我尝试了DiegoCoderPlus的解决方案,但没有给我我想要的东西:

global $post;
$merk = $_GET['merk'];
$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = 'brand'");
foreach ($results as $result){
    $post_id = $result->post_id;
    $brand = get_post_meta($post_id, 'brand', false); 
    $brandNeedle = $merk;                   
    if(in_array($brandNeedle, $brand))
        {
            echo 'true<br>';
        }else
        {
            echo 'false<br>'; 
        }
    }

这给了我两次false的结果。 这是一半好,因为我的数据库中只有两家公司用于测试。如果我使用其他品牌,则会显示两个false个结果 $brand数组看起来像这样。也许有帮助:

Array
(
    [0] => Array
        (
            [0] => 
        ) 

)

false

Array
(
    [0] => Array
        (
            [0] => brand 1
            [1] => brand 2
        )

)

1 个答案:

答案 0 :(得分:2)

如果你的数组是php,你唯一需要的是in_array

它的工作原理如下:

$brands = array('brand1', 'brand2', 'brand3', 'brand4');
$brandNeedle = 'brand2';

if(in_array($brandNeedle, $brands))
{
   // it is on the array
}else
{
   // it is not 
}