PHP获取URL中的所有价格ID

时间:2014-04-30 20:10:54

标签: php url get

这可能是一个简单的解决方案,但我画了一个空白。我正在尝试基于$,$$,$$$,$$$$和$$$$$等值创建PHP过滤器。我希望能够选择超过价格并让它过滤。我的SQL表看起来像:
price_id price_name
1 $
2 $$
3 $$$
4 $$$$
5 $$$$$

我的网址看起来像www.example.com/search.php?address=567&price_id=1&price_id=2。当我输入下面的GET时,我能够得到最后的价格price_id = 2但不是price_id = 1。我能从URL获取两个price_ids吗?
$price_id = $_GET['price_id']; echo ''.$price_id.'';

非常感谢!

5 个答案:

答案 0 :(得分:2)

PHP没有自动为您执行此操作,因为所有变量都具有相同的名称:price_id=1price_id=2覆盖。有两种方法:

如果您不控制网址,可以使用explode('&', $_SERVER['QUERY_STRING'])手动执行此操作。

或者,如果您控制了正在生成的网址,只需在方括号上添加方括号:price_id[]=1&price_id[]=2

答案 1 :(得分:0)

 www.example.com/search.php?address=567&price_id=1&price_id=2

将此更改为

 www.example.com/search.php?address=567&price_id1=1&price_id2=2

然后

$price_id1 = $_GET['price_id1'];
$price_id2 = $_GET['price_id2'];

echo ''.$price_id1.''.$price_id2;

尝试告诉

答案 2 :(得分:0)

制作price_id和数组[]

search.php?address=567&price_id[]=1&price_id[]=2

然后你有$_GET['price_id'][0]$_GET['price_id'][1]

答案 3 :(得分:0)

问题是你不能两次传递相同的参数。这就像声明$ value = 1; $ value = 2然后尝试从值读取1和2,如果这是有道理的。您可以通过在price_id中的值之间放置一个特殊字符来解决此问题。像price_id = 1 * 2或者你可以简单地从price_id开始,然后对于每个新的id,你可以将它增加为price_id1,price_id2等。我喜欢第一个因为你可以爆炸它而不必检查其他的是设置,但这都是首选。

答案 4 :(得分:0)

你得到第二个价格,因为两者都有相同的ID,尝试使用post 即

<form method="post" action ="act.php">
<input name=price[1]>
<input name=price[2]>
</form>

And get the values using post
//act.php
$prices = $_POST['price'];