Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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 WordPress:基于输入(JSON)打印meta_值的自定义选择查询_Php_Json_Wordpress - Fatal编程技术网

Php WordPress:基于输入(JSON)打印meta_值的自定义选择查询

Php WordPress:基于输入(JSON)打印meta_值的自定义选择查询,php,json,wordpress,Php,Json,Wordpress,我对Wordpress的自定义查询有问题。 我想从$_帖子中查询meta_值并打印包含输入文本的值,但现在我只检索整个列 这是我的密码: $gets = '%'.$_REQUEST['s'].'%'; // Sets meta value from input $meta_key = 'ricerca'; // Sets meta key global $wpdb; $metas = $wpdb->get_results( "SELECT

我对Wordpress的自定义查询有问题。 我想从$_帖子中查询meta_值并打印包含输入文本的值,但现在我只检索整个列

这是我的密码:

    $gets = '%'.$_REQUEST['s'].'%'; // Sets meta value from input
    $meta_key = 'ricerca'; // Sets meta key

    global $wpdb;

    $metas = $wpdb->get_results(
        "SELECT DISTINCT meta_value
        FROM $wpdb->postmeta
        WHERE meta_key = '{$meta_key}'
        AND meta_value LIKE '{$gets}'"
    );

    $response = array(); // Initialize array

    if (!empty($gets))
    {
        foreach ($metas as $meta)
        {
            $response[] = $meta->meta_value; // Set single meta as array
        }
    }

    echo json_encode( $response ); // Prints values.
    exit();
}
我做错了什么?

这是表格屏幕:

这是输入表单:

<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">

<?php if( mfn_opts_get('header-search') == 'shop' ): ?>
    <input type="hidden" name="post_type" value="product" />
<?php endif;?>

<i class="icon_search icon-search-fine"></i>
<a href="#" class="icon_close"><i class="icon-cancel-fine"></i></a>

<input type="text" class="field" name="s" id="s" placeholder="<?php echo $translate['search-placeholder']; ?>" />           
<input type="submit" class="submit" value="" style="display:none;" />
这就是结果:


即使我键入未知单词,它也会弹出所有元值。

您只需修改查询:

$sql = "SELECT DISTINCT meta_value
        FROM $wpdb->postmeta
        WHERE meta_key = '{$meta_key}'";

if(isset($_REQUEST['s']) && !empty($_REQUEST['s']))
    $sql .= " AND meta_value LIKE '{$gets}'";

$metas = $wpdb->get_results($sql);

您的查询是正确的…可以显示一些表数据和input@HappyCoding添加了更多信息,谢谢。请尝试打印查询…@HappyCoding这是结果:从WP_postemta中选择不同的META_值,其中META_KEY='RICERCA'和META_值,如“%%”@HappyCoding这是结果的图像,不是大写。。。顺便说一句,$\u帖子似乎是空的?天哪,我快疯了从wp_Posteta中选择不同的meta_值,其中meta_键='ricerca'-$_请求['s']不读取输入,事实上查询不会添加和meta_值,比如..打印$_请求['s'],并检查值。。。。。顺便说一下,我们使用$gets变量。。。打印出那张也就是打印的那张:[Stampaggio Material Plastiche、Giardinagio、Metallurgia Pressofusine Lavorazione Metalli、Alimentari Produzione Olio、Giardinagio-attrezzi、prodotti e forniture、Giardinagio-Vivai piante e fiori、Test、Abbigliamento donna、Abbigliamento-vendita al dettaglio、网络代理、通讯社、平面设计机构]它给了我所有的值。看起来,它没有读取我的$\u POST。事实上,如果我打印$get或$\u POST['s'],它不会显示任何内容。