2011-08-17 83 views
-2

這裏是代碼代碼進出口工作有了:反向PHP陣列

<?php 

function get_gold_time_noformat() 


{ 
    $goldquery = mysql_query("SELECT * FROM ( 
    SELECT 
     @row := @row +1 AS rownum, time,metal 
    FROM ( 
     SELECT @row :=0) r, metal_price 
    WHERE metal = 'GOLD' ORDER BY `metal_price`.`time` DESC 
) ranked 
WHERE rownum % 16 = 1 
LIMIT 6 
"); 

     while($result = mysql_fetch_array($goldquery)) 
{ 

    echo "<div id=\"dates\">" . date('g a', strToTime($result['time'] . ' - 7 hours')) . "</div>"; 
} 

     } 
?> 

我只是試圖扭轉數組,我嘗試使用array_reverse但無法得到它的工作。

+0

哇,你的函數被調用'get_gold_time_noformat'但它不返回任何東西,但打印到屏幕上。這很混亂。 – netcoder

+0

它從我的數據庫返回時間,我將它設置爲每16行(4小時)跳過一次,以便我可以從最新的刮取時間打印最近24小時。不幸的是,我無法逆轉這些顯示時間的順序 – Aproducktion

回答

1

如果您在數組上使用數組反轉,它將起作用。

<?php 
function get_gold_time_noformat() { 
    $goldquery = mysql_query("SELECT * FROM ( 
     SELECT 
      @row := @row +1 AS rownum, time,metal 
     FROM ( 
      SELECT @row :=0) r, metal_price 
      WHERE metal = 'GOLD' ORDER BY `metal_price`.`time` DESC 
     ) ranked 
     WHERE rownum % 16 = 1 
     LIMIT 6" 
    ); 

    $array_result = array(); 

    while($result = mysql_fetch_array($goldquery)) { 
     $array_result[] = $result; 
    } 

    $array_result = array_reverse($array_result); 

    foreach($array_result as $result) { 
     echo "<div id=\"dates\">" . date('g a', strToTime($result['time'] . ' - 7 hours')) . "</div>"; 
    } 
} 
?> 

雖然我建議看看您是否可以在SQL中反轉它。

+0

它返回此錯誤:致命錯誤:調用未定義函數排列()在/home/bellsnet/public_html/chart.php 196行 – Aproducktion

+0

嘗試編輯。 (剛剛更新) –

+0

謝謝你這麼多! – Aproducktion

2

請勿使用PHP。使用ORDER BY

SELECT * FROM ( 
    SELECT 
     @row := @row +1 AS rownum, time,metal 
    FROM ( 
     SELECT @row :=0) r, metal_price 
     WHERE metal = 'GOLD' ORDER BY `metal_price`.`time` DESC 
    ) ranked 
    WHERE rownum % 16 = 1 
    ORDER BY rownum DESC 
    LIMIT 6