【问题标题】:$get multiple variables from url$从url获取多个变量
【发布时间】:2010-09-15 13:28:14
【问题描述】:

我正在制作一个摄影网站。在数据库中有一个图像表、事件表和类别表,它们通过外键链接。目前,我从数据库中拍摄照片时生成事件并将它们转换为锚链接。

<?php
while ( $a_row = mysql_fetch_row( $result ) ){

 foreach ( $a_row as $field ){

?>
<a href="images.php?event=<?php echo $field;?> "> <php? echo $field; ?> </a>
<?php
 }
}
?>

当点击链接时,脚本会从 url 中的 get 获取变量:/images.php?**event**=eventCalledParty

foreach($_GET as $value)
{
$event = $value;
}
$event = mysql_real_escape_string($event);

我的问题是 - 如果我要实现类别并有一个如下所示的网址:

/images.php?event=eventCalledParty&category=categoryCalledFashionPhotography

我将如何将这两个变量从 url 中分离出来以在我的查询中使用。

谢谢。

【问题讨论】:

  • 请注意,您当前的代码没有意义。不必使用 foreach
  • 我应该想到,我已经知道帖子是这样工作的:/谢谢

标签: php get


【解决方案1】:

这些将自动显示在这些变量中...

$_GET['event']
$_GET['category']

PHP 为您完成所有这些工作。

【讨论】:

  • 我还应该注意,在您在查询中使用它之前,您不应该转义您的数据。否则它不会对你有多大用处。
  • 好点。值得将其添加到答案中,而不是在评论中
【解决方案2】:
$event = mysql_real_escape_string($_GET['event']);
$category = mysql_real_escape_string($_GET['category']);

【讨论】:

    【解决方案3】:

    每个 url 参数成为$_GET 中的一个单独的键。

    因此,对于 /images.php?event=eventCalledParty&category=categoryCalledFashionPhotography,您将获得:

    $_GET['event'] => 'eventCalledParty' 
    $_GET['category'] => 'categoryCalledFashionPhotography' 
    

    你可以采取相应的行动:

    if ($_GET['category'] == 'categoryCalledFashionPhotography') {
        //do stuff here
    }
    

    【讨论】:

    • 您需要先检查是否设置了 $_GET['something']!使用 empty() 或 isset()。
    • @Brad 肯定如此。我主要是试图将 slexAtrukov 的注意力集中在如何逐步使用 $_GET 上。不过,这是个好建议。
    【解决方案4】:

    我对 php 有点生疏,但我认为在你的 foreach 中你想要的是获取字段的名称及其值。

    foreach($_GET as $name->$value)
    {
      if($name == 'event') {
        $event = mysql_real_escape_string($value);
      }
      else if($name == 'category')
      {
        $category = mysql_real_escape_string($category);
      }
    }
    

    【讨论】:

    • 这里的循环有什么用?
    • 应该是foreach($_GET as $name=>$value)。
    【解决方案5】:

    foreach($_GET as $key => $value) { $event[$key] = mysql_real_escape_string($value); }

    【讨论】:

    • 注册全局变量会使这段代码变得有趣:) 最好在上面添加$event=array();
    猜你喜欢
    • 2011-09-28
    • 2014-03-14
    • 2014-02-02
    • 2014-11-06
    • 2015-01-18
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多