【问题标题】:Creating/editing a php dynamic page创建/编辑 php 动态页面
【发布时间】:2012-10-01 23:48:02
【问题描述】:

好的,我有一个动态页面,人们可以在该页面上发布城市中的事件,我们将该页面命名为:city.php。但是,为了访问该页面,您必须从 states.php 中选择一个州,然后从 allcities.php 中选择一个城市。州和城市都在mysql数据库中。在 city.php 页面上,您可以单击“添加事件”,它将带您到 createevent.php,您可以在其中创建和添加显示在 city.php 上的事件。但这是我想做的:

我想让 city.php 成为为该城市发布不同内容的中心位置。我想要一个关于事件、新闻、工作和出售的页面。在 city.php 上,您将为这些页面选择一个链接,将您带到 events.php、news.php、jobs.php 和 sale.php 等页面。如何使所有这些页面保持动态并与所选城市相关?我玩弄了一下,没弄明白。

【问题讨论】:

  • 这是相当多的页面加载。考虑切换到使用基于 ajax 的系统,该系统根据状态选择动态加载城市,然后将所选城市保存在会话变量中,以便所有其他页面都可以使用它。

标签: php mysql dynamic phpmyadmin craigslist


【解决方案1】:

在 PHP 中有很多方法可以做这样的事情。我个人不同意你的方法,因为它听起来。不过,我可能对您所说的内容有误。

正如亚当所说,$_SESSION 是首先想到的。您还可以查看 $_COOKIE: http://php.net/manual/en/features.cookies.php

或者只是将城市 ID 作为 $_GET 变量传递: http://www.yoursite.com/events.php?city=2

然后像 PHP 一样阅读它

$city_id = $_GET['city'];

【讨论】:

  • 在 URL 中传递重要的站点范围变量通常很笨拙,但在这种情况下,我认为这是个好主意。它使读者可以轻松切换到另一个城市,使您的 URL 易于理解,并且意味着该 URL 将继续转到正确的位置,即使它被添加到书签或粘贴到电子邮件或其他内容中。
【解决方案2】:

我不确定我是否理解您的意思,但您希望变量跨入其他页面吗?看看 PHP 对会话的使用。会话非常方便,它本质上允许您将站点范围的变量关联到每个用户。

http://php.net/manual/en/features.sessions.php

基本上在你每个页面的顶部刚刚放:

session_start();

然后分配/访问您刚刚调用的会话变量:

$_SESSION['city'] = $city;

echo $_SESSION['city'];

【讨论】:

  • 我认为这可能是我正在寻找的内容,一旦用户单击该页面,我想我可以进行查询以提取所有已在数据库中输入的特定信息城市
  • 您可以每次查询数据库或将其存储在会话变量中。如果信息量很大,我建议每次都查询数据库。会话变量占用服务器上的内存,所以你不想在那里存储太多。会话变量被设置并从一个页面转移到另一个页面。
  • 似乎无法在此评论中做我想做的事,将在这里发一个新帖子:stackoverflow.com/questions/12715547/…
【解决方案3】:

相当通用,但关键在于关系数据库结构。显示很容易,因此请确保新闻、工作、事件表具有 id_city 以构建正确的查询。

示例 DB 样式作为您评论的答案:

cities : id_city | city_name | city_slug | id_state
events : id_event | id_city | event_name | other_event_data | ...
jobs   : id_jobs | id_city | job_name | job_salary | etc.

所以用户点击yoursite.com/washington

然后你可以查询来自url(这里是华盛顿)的:

SELECT id_city FROM cities WHERE city_slug = "washington"

你现在得到了 id_city。那么如果是jobs,

SELECT * FROM jobs WHERE id_city = "above gotten id_city"

希望这会有所帮助。

【讨论】:

  • 我试图引起人们的注意,如果他想根据城市选择来存储工作、新闻、事件,那么假设他正在使用数据库并不遥远。在创建事件、新闻等时,如果他将城市 id 发布并存储到数据库中以进行相对性,那么通过城市 id 等于发布的城市 id 来获取与所选城市相关的所有新闻会非常容易。
  • 是的,我正在使用数据库,创建其他动态页面的最佳方法是什么,session_start 似乎没有这样做。 @yahya
  • @MikeYeah,检查修改后的答案。祝你的项目好运。
猜你喜欢
  • 2019-11-07
  • 2023-03-19
  • 2019-06-20
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 2015-01-08
相关资源
最近更新 更多