Frage

Ich bin die Implementierung einer memcache mysql Abfrage-Ergebnisse zwischenzuspeichern.

Es Schleifen durch die MySQL-Ergebnisse mit

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

oder Schleifen durch die Memcached Ergebnisse (wenn sie in memcache gespeichert sind, und nicht abgelaufen) über

foreach($cch_active_users_final as $rowP3) {

Dies ist wahrscheinlich etwas, das ist wirklich offensichtlich ... aber ich bin immer es nicht.

Wie kann ich es die richtige Looping Methode zu zeigen, basierend auf, wenn der Memcached Wert vorhanden ist oder nicht. Ich will nur das Recht Looping Methode auszuwählen. Ich konnte nur die gesamte, während doppelte {} Funktion mit dem gesamten Inhalt, aber ich möchte nicht wiederholen, dass großes Stück Code, nur so kann ich während auf foreach ändern

Irgendwelche Tipps?

War es hilfreich?

Lösung

Die Logik etwas sein sollte:

(teilweise Pseudo-Code)

$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

Andere Tipps

Wenn ich Ihre Frage verstehen, wird dieser Code nicht sinnvoll. Nach der Abfrage-Datenbank abgefragt Ergebnisse im Cache gespeicherten Werte zu vergleichen ist nicht sinnvoll.

Wenn die $ row und $ rowP3 Werte die gleichen Daten enthalten, könnten Sie haben, was in den Schleifen in einer Funktion happends, und die Zeile als Argument übergeben.

Sie nicht, verwenden Sie eine einheitliche Methode rel="nofollow mit PDO.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top