我有两个不同的表,我需要从中提取数据
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_value
和option_name 'blog_name'
的同一个表上选择option_name='state'
option_value="$_POST['state']'
,并从{{列表中创建表名称1}}(来自表blog_id
),并在末尾附加'_options'。
上帝我甚至不知道我试图做什么可以用人的嘴说。
无论如何,我认为stackoverflow是一个可以询问的地方,如果在任何地方。
如果我能为你澄清任何事情,请告诉我,我会尝试。
顺便说一下,这是因为我使用的是Wordpress MU,并选择在各种博客动态创建的表格上添加一些额外的设置。
答案 0 :(得分: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-service来调用它,或者实现一个memcache解决方案,这样如果这成为一个问题就可以集中存储和管理这些数据,但我想如果你使用这个对象在这里用前面的WP Super Cache缓存你应该没问题。
答案 1 :(得分:0)
我不认为你这样做是正确的。
为什么没有类似
的内容,而不是使用表名_optionsblog_options
其中包含字段
然后你可以基于blog_id
开心地JOIN
答案 2 :(得分:0)
如果我认为这是正确的,那么您正在创建具有变量名称的表。
我认为这不是一个好主意。
为什么不创建一个包含变量字段的表,其中包含varchar类型中的变量名?该字段可以包含$ blog_id。
就像你问题的其他答案一样。