2014-10-04 2 views
0

Здравствуйте, я только начал изучать PHP около 8 дней назад. Я пытаюсь загрузить комментарии из таблицы SQL и привести их в порядок по их идентификатору. Для этого я хочу использовать массив и добавить к индексу, что 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

Почему вы хотите использовать массив для этого, это можно сделать простым запросом –

ответ

0

Если вы хотите отсортировать массив PHP по индексу (ключ), то то, что вы ищете, это встроенная функция, называемая ksort().

От PHP.net (ссылка выше): Сортирует массив по ключу, поддерживая ключ к корреляции данных. Это полезно в основном для ассоциативных массивов.


Если вы хотите, чтобы отсортировать возвращаемые ID из базы данных, просто изменить свой запрос:

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

Спасибо! Это отлично работает! – Forseth11

1

Бадди ваш подход совершенно неправильно. Почему цикл и обработка излишне?

Вы можете сделать это во время выполнения запроса, используя предложение ORDER BY.

0

Вам не нужно, что весь код, удалить, что и попробовать код в этом ответе, и изменить значение, где вы должны, не забудьте изменить YourTableName к вашему фактического имени таблицы. , что он собирается сделать, чтобы выбрать все, и будет упорядочивать результат по их идентификатору. Спасибо,

$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/>'; 

     } 
     } 
Смежные вопросы