2014-10-04 72 views
0

你好,我剛剛8天前開始學習PHP。我正在嘗試從SQL表加載註釋,並將它們按ID排序。要做到這一點,我想使用一個數組,並添加到索引,評論ID是那麼它將按順序。PHP如何添加到任何索引的數組?

EX:(IK這不是正確的代碼)

while loop through SQL table{ 
    array[3] = This is comment 3. 
    array[1] = This is comment 1. 
    array[0] = This is comment 0. 
    array[2] = This is comment 2. 
} 

正如你可以看到它只是通過它們的索引放入正確的順序意見。我將如何在PHP中執行此操作?

這裏是我迄今爲止,它不工作:

$return = ""; 
    $array = array(); 
    $lowers = 0; 


    $res2 = mysql_query("SELECT * from `".Mod::$id."_comments`"); 
    if($res2){ 
     while($row = mysql_fetch_assoc($res2)){ 
      if($row['id'] < $lowers){ 
       $lowers = $row['id']; 
      } 
      $name = $row['id'] . "_delete"; 
      $array[$row['id']] = "<div class=\"caption\"><hr><h5>" 
      . getUserByUUID($row['uuid']) . " (" . date('m/d/Y', $row['timestamp']) . ") <input type=\"button\" name=\"" . $name . 
      "\" id=\"" . $name . "\" value=\"Delete\" onClick=\"CALLJAVASCRIPTFUNCTIONHERE()\" ></h5> 
        <figure class=\"img-polaroid\">" . 
        $row['comment'] . "</figure> 
       </div>";//TODO CHANGE THE CALL JAVA SCRIPT FUNCTION TO THE PROPER FUNCTION!!!!! 
      alert("ARRAY: " . $array[$row['id']]);//This is getting called but it does nothing. Also I made a php function called alert that DOES work. 
     } 
    } 



    for($loop = $lowers; $loop < (count($array) + $lowers); $loop++){ 
     alert("LOOP: " . $loop); 
     $return = $return + $array[$loop]; 
    } 

    return $return; 

    for($loop = $lowers; $loop < (count($array) + $lowers); $loop++){ 
     alert("LOOP: " . $loop); 
     $return = $return + $array[$loop]; 
    } 

    return $return; 

感謝您的任何幫助。

+0

爲什麼要用這個數組呢這可以通過簡單的查詢來完成 – 2014-10-04 03:22:37

回答

0

如果您想要通過索引(鍵)對PHP數組進行排序,那麼您要尋找的是內置函數,稱爲ksort()

從PHP.net(上面的鏈接):按鍵排序數組,保持數據相關性的關鍵。這主要用於關聯數組。


如果你正在尋找從數據庫返回的ID的排序,就改變你的查詢:

"SELECT * from `".Mod::$id."_comments` ORDER BY `id` ASC" (DESC if you want the newest first) 
+0

謝謝!這很好! – Forseth11 2014-10-04 03:56:56

1

好友你的做法是完全錯誤的。爲什麼循環和不必要的處理?

在使用ORDER BY子句執行查詢時,可以這樣做。

0

你不需要是整個代碼,刪除並嘗試代碼這個答案, 和改變,你必須, 不要忘記值改變YourTableName實際的表名。 它要做什麼去選擇每一件事,並會按他們的ID排序。謝謝,

$res2 = mysql_query("SELECT * from YourTableName ORDER BY id ASC"); 
//Change YourTableName to your actual table name 
    if($res2){ 
     while($row = mysql_fetch_assoc($res2)){ 

      echo $row['id'].' :'.$row['comment'].'<br/>'; 

     } 
     }