Как отобразить результаты MySQL в обратном порядке? - PullRequest
1 голос
/ 23 июля 2011
$result3=mysql_query("select * from $mail"); 

while($row=mysql_fetch_array($result3)) { 
    if($row['status']!=NULL) {   
        echo $row['status'];
        echo $row['date'];
        echo $row['time'];
    }
}

Я хочу, чтобы последнее поле в базе данных отображалось первым.Как это реализовать?

Ответы [ 5 ]

5 голосов
/ 23 июля 2011
$result3 = mysql_query("SELECT * from $mail ORDER BY `date` DESC"); 

Никогда не делай себе то, что база данных может сделать для тебя.

Если по какой-то странной причине вы действительно хотите пересмотреть набор результатов в обратном порядке, вам придется использовать mysql_data_seek, начиная с mysql_num_rows() - 1 и уменьшая указатель после каждого вызова до mysql_fetch_array.

2 голосов
/ 23 июля 2011

Используйте предложение ORDER BY в запросе, чтобы результаты располагались в том порядке, в котором вы хотите их отобразить.

Без ORDER BY нет никакой гарантии, в каком порядке будут поступать данные, поэтому «обратный», что не имеет смысла.

0 голосов
/ 23 июля 2011

Закажите свои поля с функцией ORDER BY sql. Так что выберите, по какому полю вы хотите упорядочить, и упорядочите его по этому полю.

$result3=mysql_query("select * from $mail ORDER BY date DESC ,time DESC"); 

или если у них есть поле id:

$result3=mysql_query("select * from $mail ORDER BY id DESC"); 

И пока вы занимаетесь этим, убедитесь, что вы точно знаете, что находится в $mail!

0 голосов
/ 23 июля 2011
"select * from $mail order by date DESC, time DESC"
0 голосов
/ 23 июля 2011

Либо пользователь упорядочивает сам запрос SQL, используя ORDER BY, либо помещает их в массив в PHP и переворачивает массив:

$all_rows = array();
while($row=mysql_fetch_array($result3)) {
  $all_rows[] = $row;
}

$all_rows = array_reverse($all_rows);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...