2016-04-03 26 views
0

for loop var. döngüde PHP: İlişkisel dizideki son tek öğe alma

$TOTAL_GOALS = 5; 
for($i= 1; $i<=$TOTAL_GOALS; $i++) { 
    $EACH_POST_QUERY = mysql_query("SELECT item_id FROM likes WHERE item_id='$i'"); 
    $EACH_POST_TOTAL_LIKES = mysql_num_rows($EACH_POST_QUERY); 
    $EACH_POST_RESULT = array(); 
    $EACH_POST_RESULT[$i] = $EACH_POST_TOTAL_LIKES; 
} 

, Dinamik sorgular ateş ve $EACH_POST_TOTAL_LIKES adında bir değişken içine sonucun alınmasının ediyorum.

Buna dayalı bir ilişkilendirme dizisi yapmak istiyorum. Bu yüzden, $EACH_POST_RESULT = array(); adlı bir dizi oluşturdum ve buna değer veriyorum. örnek - Ben alıyorum

çıktı son öğedir:

3:16

My beklenen çıkışı -

1:12 2:14 3:16

Bunu kullanarak JS sonucu yolluyorum -

$SERVER_DATA = array("TG"=>$TOTAL_GOALS, "EACH_POST_LIKES"=> $EACH_POST_RESULT); 
echo json_encode($SERVER_DATA); 

Con taban bana sadece son girişi gösteriyor. Dizi neden değerleri üzerine yazıyor ve sonuncuyu saklıyor?

Neler eksik?

cevap

1

Sen önce döngü bu satırı taşımak gerekir: Aksi

$EACH_POST_RESULT = array(); 

boş bir dizide her zaman değiştirilecek !

+0

Teşekkürler adamım! İşe yarıyor. Kabul edilemez veya İşaretlenemez. – Aavin

2

Döngüde her zaman array oluşturuyorsunuz. Tüm parametreleri bir kez saymak istiyorsanız bunu MySQL Between Clause kullanarak tek bir sorguda uygulamanızı öneririm.

bu deneyin:

$TOTAL_GOALS = 5; 
 
$EACH_POST_RESULT = array(); 
 
for ($i = 1; $i <= $TOTAL_GOALS; $i++) { 
 
    $EACH_POST_QUERY = mysql_query("SELECT item_id FROM likes WHERE item_id='$i'"); 
 
    $EACH_POST_TOTAL_LIKES = mysql_num_rows($EACH_POST_QUERY); 
 
    array_push($EACH_POST_RESULT, $EACH_POST_TOTAL_LIKES); 
 
}