0

我有两个不同的表,我需要从中提取数据

blogs

具有以下列

blog_id

和另一个具有变量名称的表,例如

$blog_id . "_options

其中有以下列:

option_id, option_name, option_value

例如:

option_id = 1, option_name='state', option_value='Texas'
option_id = 2, option_name='blog_name', option_value='My Blog'

最后,我得到了以下 POST 数据

state

这是我需要做的: 获取 POST 数据区域中的任何博客的名称。更简洁地说,我需要在同一个表上选择option_valueof ,并且表名是从's 列表(来自 table )创建的,并在末尾附加了 '_options'。option_name 'blog_name'option_name='state'option_value="$_POST['state']'blog_idblogs

天哪,我什至不知道我正在尝试做的事情是否可以用人的嘴说出来。

无论如何,我认为 stackoverflow 是问的地方,如果在任何地方。

让我知道是否可以为您澄清任何事情,我会尽力的。

顺便说一下,这是因为我使用的是 Wordpress MU,并且选择在各种博客的动态创建的表格上放置一些额外的设置。

4

3 回答 3

1

您可以在直接 SQL 中执行此操作,但我认为您最好使用内置的 wordpress 函数,这样如果数据库结构发生变化(这可能是因为 MU 和常规 WP 核心设置为很快合并)你'还可以。

听起来您希望能够从活动博客中提取有关其他博客的信息。我会分两步完成:

$blogs = get_blog_list(0,'all');
foreach($blogs as &$blog) {
    switch_to_blog($blog['id']);
    $blog['state'] = get_option('state');
    restore_current_blog();
}
restore_current_blog();

这将为您提供 MU 安装上所有活动博客的详细信息列表 + 选项表中的状态字段。

是的,它不那么优雅,但它的功能几乎没有乱七八糟。如果您需要在页面加载中多次使用此信息,则使用 WP 的对象缓存来存储变量以供以后使用。还有无数种方法,您可以通过 ajax 或来自父博客的 Web 服务调用它,或者实现 memcache 解决方案,以便在出现问题时可以集中存储和管理这些数据,但我认为如果您使用该对象在这里用前端的 WP Super Cache 之类的东西缓存你应该没问题。

于 2009-08-27T14:19:00.170 回答
0

我不认为你这样做是正确的。

而不是使用表名_options,为什么不使用类似的东西

blog_options

其中包含字段

  • blog_id
  • option_id
  • 选项名称
  • 选项值

然后就可以愉快JOIN的基于blog_id了

于 2009-08-27T08:37:25.710 回答
0

如果我得到这个正确,你正在创建具有变量名的表。

我不认为这是一个好主意。

为什么不只创建一个表,其中包含一个变量字段,其中包含 varchar 类型的变量名?该字段可以包含 $blog_id。

就像您问题的其他答案一样。

于 2009-08-27T08:39:10.107 回答