0

データをプルする必要がある2つの異なるテーブルがあります

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のを選択する必要があり、テーブル名は のリストから(テーブル から) 作成され、最後に「_options」が追加されます。option_name 'blog_name'option_name='state'option_value="$_POST['state']'blog_idblogs

神よ、私がやろうとしていることが人間の口で言えるかどうかさえわかりません。

とにかく、私はstackoverflowがどこにいても尋ねる場所だと思います。

あなたのために何かを明確にすることができるかどうか教えてください、私は試します.

ところで、これは私が Wordpress MU を使用しており、さまざまなブログの動的に作成されたテーブルにいくつかの追加設定を行うことを選択したためです。

4

3 に答える 3

1

直接 SQL でこれを行うことができますが、組み込みの wordpress 関数を使用したほうがよいと思います。そのため、その DB 構造がまったく変更された場合 (MU と通常の WP コアがすぐにマージされるように設定されているため)、まだ大丈夫です。

アクティブなブログから他のブログに関する情報を取得できるようにしたいようです。私は2つのステップでそれを行います:

$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 型の変数名を含む変数フィールドを持つテーブルを 1 つだけ作成してみませんか? そのフィールドには $blog_id を含めることができます。

あなたの質問に対する他の回答と同じように。

于 2009-08-27T08:39:10.107 に答える