2010-11-18 15 views
0

Arandı ve arandı ve benzer bir sorunu olan kimseyi bulamadım.Değerler, bir diziyi bir dizi haline getiremiyor ... while

Her kaydın değerlerini dört farklı diziye itmek için kodla döngü yaparken bir yapmam gereken bir şey var. Hepsi diziler boş (sadece Uyarı: bölme sıfıra) verenler hariç iyi görünüyor.

Her kayıt için dört değeri ve döngü içindeki her bir sipariş tarihi için unix zaman damgasını ekleyebilirim, böylece değerler her kayıt için doğrudur, ancak diziler boştur. Döngüdeki dizi [] kodu bloğu etrafındaki koşullu ifadeyi yorumlamaya çalıştım, ancak fark yok.

Ayrıca görmek için array_push'u da denedim; yine, fark yok.

Ben bir yeniyim ve hayatım boyunca dizilerin neden dolu olmadığını göremiyorum.

<?php do { ?> 
    <?php 
    // create unix timestamp from order_date 
    $pub_date = strtotime($row_getReviews['order_date']); 

    // add rate values from each record to the arrays if less than 1 year old 
    if($pub_date - $one_year < $year_limit) { // tried commenting the condition out 
$total_vals[] = $row_getReviews['total_rate']; 
$food_vals[] = $row_getReviews['food_rate']; 
$service_vals[] = $row_getReviews['service_rate']; 
$atmo_vals[] = $row_getReviews['atmo_rate']; 
} 
    ?>  

<!-- html, css, etc here to display text and more --> 

<?php } while ($row_getReviews = mysql_fetch_assoc($getReviews)); ?> 

Herhangi bir yardım büyük takdir:

// set timezone and $one_year and $year_limit variables (used in the do-while loop) 
ini_set('date.timezone', 'America/Los_Angeles'); 
     $one_year = 60 * 60 * 24 * 365; 
     $year_limit = strtotime("-1 year"); 

// create the empty arrays for each rating 
$total_vals = array(); 
$food_vals = array(); 
$service_vals = array(); 
$atmo_vals = array(); 

// get the average for each rating 
$total_avg = round((array_sum($total_vals))/(count($total_vals))); 
$food_avg = round((array_sum($food_vals))/(count($food_vals))); 
$service_avg = round((array_sum($service_vals))/(count($service_vals))); 
$atmo_avg = round((array_sum($atmo_vals))/(count($atmo_vals))); 

Bu döngü:

Bu döngü dışında kodudur!

cevap

0

o Amacıyla

Create empty arrays 

Loop 

Get averages 

deneyin. Döngünün ortalamaları almadan önce gerçekleştiğinden emin olun.

Ve herhangi bir ilmek dışında başka bir ... kullanın, bu arada Mayhem'in belirttiği nedenlerle ilk iterasyon hakkında verileriniz var.

+0

Tamam! Döngüden sonra (dışında) ortalama kod bloğunu çalıştı. While while ifadesinden sonra yerleştirilirken ... döngüden ve ortalamaları dizilerden alır (beklendiği gibi doldurulur). Ortalamaları sayfanın en üstünde görüntülemek istediğime göre, kayıtlar iki kez, önce ortalamalar için, ardından da her bir kayıt için ayrıntılı değerler (metin, vb.) Için dönmem gerekiyor. Sadece bir döngü kullanmayı deniyordum. Ama göründüğü kadarıyla, buna ihtiyacım var ... döngü boyunca, en azından bireylerin kayıtlarını görüntülemek için. Teşekkürler! – tjkampa

+0

Tabii ki Ted. Üzgünüm, ilk defa burada bir soru soruyorum. Bir uyarı olsa da, ... ile herşey doğrudur. Başlığın üzerindeki tüm kodu taşıdım: set dizileri; ... değerleri elde etmek için döngü yaparken; ortalamaları hesaplamak; Kayıt kümesini geri al. Herşey iyi. (Ve buMayhem sonra harekete geçmeyi söyledi, bunu anlamamıştım.) – tjkampa

İlgili konular