【问题标题】:Dynamic navigation with php使用 php 进行动态导航
【发布时间】:2013-07-26 09:51:05
【问题描述】:

您好,我正在构建站点目录,但在理解如何使用 $_GET['page'] 函数时遇到了一些问题

我知道您可以使用它来浏览动态创建的站点,事实上我有一个当前使用它的站点,但我没有创建那组代码并且不理解其背后的逻辑..

我知道我将如何处理导航 - 主页将包含链接到他们的网站和我网站上的列表的网站。列表 url 将包含站点的类别和 ID。

我希望它看起来像 domain/category/siteiddomain/index.php?cat=2&id=58

我知道我可能需要使用 htaccess 将 url 更改为看起来像第一个示例..

因此,无论如何,该 url 将包含站点 ID 和类别,然后我想使用它们与动态加载的页面关联,以及相关的类别和站点列表。

这似乎是在 PHP 中加载页面的标准方式,但我一直无法找到一个很好的指南,我还需要从 url 读取数据以进行数据库调用,所以如果任何人都可以解释我如何阅读 url 以获取列表 ID 和类别,将不胜感激!

非常感谢

卢克

【问题讨论】:

  • 跟 PHP 关系不大。每个web脚本都可以使用这些功能,.htacces的使用是正确的
  • 但是如何使用 $_GET 功能加载页面,我想要一个链接,使用来自 url、站点类别和 siteid 的数据动态转到相关列表
  • 正如@byf-ferdy 回答的那样,您的问题涵盖了PHP绝对基本 用法。使用example.com?id=58 之类的 URL 将在PHP 中为您提供一个名为$_GET 的变量,其索引为id,值为58。如果您希望使用像example.com/id/58 这样的可读URL,那么您必须使用htaccess 将URL 从example.com?id=58 重写为example.com/id/58。这里有很多关于 SO 的问题,涵盖了在线主题、示例和教程,等待有人回答您的问题很长时间是浪费时间。
  • 我明白了,我很抱歉我遇到的问题是如何在 url 中设置类别和 id,看来你可以通过在编写 url 之前定义它来设置它,所以我已经完成了href='?cat=".$category."&id=".$id."' 所以我所要做的就是使用 $_GET 功能来获取单独的变量?
  • 搞定了,非常感谢 dbf

标签: php mysql navigation


【解决方案1】:

您自己或多或少地回答了您的问题。 URL 中的参数在 PHP 中的 $_GET 数组中可用。对于您的示例,类别将是 $_GET['cat'](将返回 2),ID 将是 $_GET['id'](将返回 58)。

照顾SQL-Injections。另见其他global variables

【讨论】:

  • 看起来很简单,谢谢您的回复我会去看看我是否可以让它工作。感谢您对 SQL 注入的关注
  • 刚刚完成,比我预期的要容易得多,非常感谢您的帮助:)
【解决方案2】:
                <ul>
                    <li><a href="index.php">HOME</a></li>
                    <?
                    $first_query = "SELECT * FROM navigation_menu WHERE `status` ='active'";
                    $first_menu = $db->select($first_query);
                    for($a = 0 ; $a < count($first_menu) ; $a++)
                    {?>
                        <li><a href="general.php?id=<?=$first_menu[$a]['id']?>&general=m"> <?=$first_menu[$a]['navigation']?> </a>

                                <?$second_query = "SELECT * FROM sub_menu WHERE nav_menu_id=".$first_menu[$a]['id']." AND `status` ='active'";
                                $second_menu = $db->select($second_query);

                                if(count($second_menu) > 0)
                                {?>
                                    <ul>
                                    <?for($b = 0 ; $b < count($second_menu) ; $b++)
                                    {
                                        if($second_menu[$b]['sub_nav_menu'] != '')
                                        {?>
                                            <li> <a href="general.php?id=<?=$first_menu[$a]['id']?>&sid=<?=$second_menu[$b]['id']?>&general=s"><?=$second_menu[$b]['sub_nav_menu']?></a>

                                                <?$third_query = "SELECT * FROM sub_child_menu WHERE nav_menu_id=".$first_menu[$a]['id']." AND sub_nav_id=".$second_menu[$b]['id']." AND `status` ='active'";
                                                $third_menu = $db->select($third_query);

                                                if(count($third_menu) > 0)
                                                {?>
                                                    <ul>
                                                        <?
                                                        for($c = 0 ; $c < count($third_menu) ; $c++)
                                                        {?>
                                                            <li>
                                                                <a href="general.php?id=<?=$first_menu[$a]['id']?>&sid=<?=$second_menu[$b]['id']?>&cid=<?=$third_menu[$c]['id']?>&general=c">
                                                                    <?=$third_menu[$c]['child_menu']?>
                                                                </a>
                                                            </li>
                                                        <?}?>
                                                    </ul>
                                                <?}?>
                                            </li>
                                        <?}
                                    }?>
                                </ul>
                            <?}?>
                        </li>
                    <?}?>
                </ul>

【讨论】:

  • 这看起来比必要的复杂了 10 倍,我不确定它是否真的符合我的要求,但还是谢谢你
猜你喜欢
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多