Wie würde ich tun dies in php?
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?
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.