Üç tablo ve değişken tablo adları karıştığı karmaşık SQL sorgusu,

3 Cevap php

Ben veri çekmek gerekir ki iki farklı tablo var

blogs

, aşağıdaki kolon sahip olan

blog_id

ve bir değişken adı var başka bir tablo gibi

$blog_id . "_options

Hangi aşağıdaki sütun vardır:

option_id, option_name, option_value

Örneğin:

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

Ve son olarak, ben şu POST verileri ile sağlanan am

state


İşte yapmanız gerekenler: POST verilerinin alanında herhangi bloglar adı alın. Daha kısaca söylemek gerekirse, ben aynı masada option_value option_name 'blog_name' seçiniz gerektiğini option_name='state' ve option_value="$_POST['state']' ve tablo adları _options 'sonuna eklenen' (tablosundan blogs) ile s 'blog_id listesinden oluşturulur.

Ne yapmaya çalışıyorum bir insan ağız söylenebilir eğer Tanrı bile bilmiyorum.

Her neyse, ben stackoverflow yerde eğer sormak yerdir rakam.

Senin için her şeyi açıklamak eğer bana haber ver, ben çalışacağız.

Ben Wordpress MU kullanıyorum ve çeşitli blogun dinamik olarak oluşturulan tablolar üzerinde bazı ekstra ayarları koymak seçtiniz çünkü arada bu.

3 Cevap

Doğrudan SQL yapabilirsiniz ama wordpress fonksiyonları inşa kullanarak daha iyi olacağını düşünüyorum o kadar eğer DB yapısı (bu MU ve düzenli WP çekirdekler yakında birleştirilecek ayarlanır olabilir çünkü) hiç değişir ' Tamam hala yeniden.

Eğer etkin bir blog diğer bloglar hakkında bilgi çekmeye muktedir istiyorum gibi geliyor. İki adımda yapardım:

$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();

Bu size MU install tüm aktif bloglar + seçenekler tablosundan devlet alan detayların bir listesini vereceğim.

Evet, onun zarif, ama biraz karışıklık ile daha az işlevsel. Eğer bir sayfa yük bu bilgiyi birden çok kez kullanmanız gerekirse daha sonra kullanılmak üzere değişken saklamak için RP'nin nesne önbelleğini kullanır. Orada bu veri merkezi olarak depolanır ve bu bir sorun olursa yönetilebilir böylece bir memcache çözüm ana blog ajax veya web hizmeti yoluyla bu çağrı veya uygulamak ya şekillerde sayısız de, ama nesnesini kullanmak olmadığını düşünüyorum ön ucunda WP Super Cache gibi bir şey burada önbellek ince olmalıdır.

Bunu doğru şekilde yapıyoruz sanmıyorum.

Bunun yerine tablo adı _options kullanarak, neden böyle bir şey yok

blog_options

Alanları içeren

  • blog_id
  • option_id
  • option_name
  • option_value

Sonra mutlu JOIN blog_id dayalı olabilir

I bu doğru olsun, değişken isimleri ile tablolar yaratıyor.

Bunun iyi bir fikir olduğunu sanmıyorum.

Neden tipi varchar değişken adını içeren bu değişken bir alan ile sadece bir tablo oluşturmak değil mi? Bu alan $ blog_id içerebilir.

Sadece soruya diğer cevabı gibi.