网址中的PHP - 如何在查询中添加'或'(而不是x& y& z,x或y或z)?

时间:2013-10-08 20:11:46

标签: php wordpress

我正在使用wordpress插件重定向到随机帖子。它允许我根据标签重定向到随机帖子,因此网址可能看起来像

example.com/?random&random_tag_id=100

如果我想找到标记有标签ID 100和101的随机帖子,我会这样做

example.com/?random&random_tag_id=100&random_tag_id=101

但我想找到来自EITHER ID 100或101的随机帖子。我知道&用于'this + this',但是可以通过URL发出'this OR this'请求吗?

感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

您可以这样做:

example.com/?random&random_tag_id=100,101,102,103

当你处理这些变量时,你必须做这样的事情:

<?php
$random_tag_ids = explode(',', $_GET['random_tag_id']);
// $random_tag_ids now contains an array of your random tag ids
?>

答案 1 :(得分:0)

您可以将数组传递给查询,如下所示:

example.com/?random&random_tag_id[]=100&random_tag_id[]=101

您将获得$_GET['random_tag_id'] == array(100, 101)

答案 2 :(得分:0)

这样做的问题是你将覆盖PHP中的值。您需要括号表示法将其正确传递为数组

example.com/?random&random_tag_id[]=100&random_tag_id[]=101

当你到达PHP时,你将拥有

echo $_GET['random_tag_id'][0]; //Outputs 100

然后,您可以将您的查询传递到内爆列表

答案 3 :(得分:0)

您误解了GET参数的工作原理。

在查询字符串(?key=a&otherkey=b)中,&只是不同键/ var对之间的分隔符。所以该字符串的PHP等价物如下:

$_GET['key'] = 'a';
$_GET['otherkey'] = 'b';

如果在查询字符串中使用相同的键两次,后者将覆盖前者。因此,对于字符串?key=a&key=b$_GET['key']将等于b

正如其他人所说,您可以通过逗号分隔列表(即?key=1,2,3,4)或数组(即?key[]=a&key[]=b)传递数据。