2017-03-25 25 views
-2
function post_data($update_data){ 
    $session_user_id = $_SESSION ['user_id']; 

    $user_data = user_data($session_user_id, 'username', 'email'); 
    $email= $user_data['email']; 

    $update= array(); 

    array_walk($update_data, 'array_sanitize'); 

    foreach ($update_data as $field => $data) { 
     $update[] = '`'. $field . '` =\''.$data .'\''; 
    } 

    mysql_query("UPDATE `user_post` SET " . implode(', ', $update) . " WHERE `email` = '$email' ORDER BY date_added DESC "); 

} 

嗨,上面的函數更新了一個mysql表,請問我該如何確保代碼執行時,它以最後插入的順序顯示。PHP更新順序按日期添加不起作用

這是從表中獲取值的代碼;

$query = mysql_query("SELECT * FROM user_post WHERE `username` = '$get_user' ORDER BY date_added DESC LIMIT 3 "); 
$newsCount = @mysql_num_rows($query); // count the output amount 

if ($newsCount > 0) { 

    while($row = mysql_fetch_assoc($query)){ 
     $id = $row["id"]; 
     $username = $row["username"]; 
     $body =  $row["body"]; 
     $profile_pix = $row["profile_pix"]; 
     $date_added = strftime("%b %d, %Y", strtotime($row["date_added"])); 
    } 

} 

謝謝。

+1

把瓶蓋改成小寫/駱駝盒?它被認爲是大喊 –

+0

因爲我知道在更新中的訂單是無意義的。更新發生時沒有任何順序..並且應該產生錯誤 – scaisEdge

+0

看到待處理的編輯http://stackoverflow.com/review/suggested-編輯/ 15640993 - 這是「你的」工作,而不是其他人。 –

回答

0

我想你可以在你的表中添加一個'created_at'列,然後通過'created_at'命令你的查詢。

+0

我的一些類似的'date_added' – bammy

+0

我的猜測(只是猜測)是'date_added'的* datatype *不是DATE或DATETIME,可能是VARCHAR,並且存儲在列中的值不是規範的(ORDER BY不會以「日期時間」順序返回值,例如存儲「2017年3月25日」或「3/27/17」。我認爲這個答案表明列'created_at'被聲明爲DATETIME或TIMESTAMP。 – spencer7593

+0

Spencer可能是正確的,數據類型可能是問題,也許你在使用DATE,取而代之的是DATETIME。如果是這種情況,它不會命令那些在同一天創建的日期,因爲它們將是相同的。 – Peyu