Ben bu php nasıl yapardınız?

4 Cevap php

Ben mysql sorgu sonuçlarını önbelleğe bir memcache uygulamak.

Bu kullanarak mysql sonuçları sokmak döngüler

while($rowP3= mysql_fetch_array($result3)) {

(onlar memcache kaydedilir ve süresi dolan değilse) veya üzeri memcached sonuçları sokmak döngüler

foreach($cch_active_users_final as $rowP3) {

Bu muhtemelen thats gerçekten belirgin bir şey ... ama ben bunu almıyorum.

Onu nasıl memcached değeri var ya değilse dayalı hakkını yöntemi döngü göstermek için alabilirsiniz. Ben sadece doğru döngü yöntemi almak istiyorum. Ben sadece tüm içeriği ile tüm ise {} fonksiyonunu çoğaltmak, ama ben foreach için ise kod büyük bir kısmını, sadece bu yüzden ben değiştirebilirsiniz istiyorum tekrarı yok

Herhangi bir ipucu?

4 Cevap

Mantık gibi bir şey olmalıdır:

(partial pseudocode)

$data = get_memcached_data('cch_active_users_final');

if (!$data) {
  $query = mysql_query(..);
  $data = array();
  while($row = mysql_fetch_array()) {
    $data[] = $row;
  }
  store_in_memcache('cch_active_users_final', $data);
}

// do whatever you want with $data

Ben sorunuzu anlamak, bu kod mantıklı değil. Veritabanı sorgulama sonra önbelleğe değerlere sorgulanan sonuçlarını karşılaştırarak mantıklı değil.

$ Satır ve $ rowP3 değerleri aynı verileri içeriyorsa, bir fonksiyonun içinde döngüler happends ne var, ve bir argüman olarak satır geçebileceği.

Bunu yapmazsanız, bir unified method kullanarak PDO kullanabilirsiniz.