我需要根据用户指定的“价格”的最大值和最小值筛选页面上的帖子。
我把数据库中注册的物品的“价格”记为“longchar”。
用户输入要在中筛选的“价格”input type=text
.
过滤部分似乎不起作用,没有发生任何实际情况。
例如,如果用户希望查看从87欧元开始到5000,00欧元为止的所有项目,则循环如下:
$adsAll = array(
\'post_type\' => $postType,
\'meta_key\' => $metaKey,
\'orderby\' => $orderBy,
\'order\' => $order,
\'posts_per_page\' => $PostsPerPage,
\'meta_query\' => array(
\'key\' => \'preco_anuncio\',
\'value\' => array(\'8700\',\'500000\'),
\'compare\' => \'between\',
),
);
我从输入中获取值,去掉所有逗号和点,然后使用这些值进行过滤。我这样做是因为插入到数据库中的值既没有逗号也没有点。
知道问题出在哪里吗?
当我使用相同的键“preco\\u anuncio”从最昂贵的到较便宜的进行筛选时,它会起作用。
最合适的回答,由SO网友:Marcelo Henriques Cortez 整理而成
好的,找到问题了。
我不得不补充\'type\' => \'numeric\',
到我的查询。
So the final code looks like:
$adsAll = array(
\'post_type\' => $postType,
\'meta_key\' => $metaKey,
\'orderby\' => $orderBy,
\'order\' => $order,
\'posts_per_page\' => $PostsPerPage,
\'meta_query\' => array(
array(
\'key\' => \'preco_anuncio\',
\'value\' => array(\'8700\',\'500000\'),
\'compare\' => \'between\',
\'type\' => \'numeric\',
),
),
);