2014-11-03 2 views
0

Хочу запросить ORDER BY DESC с LIMIT 2запросов MySQL с LIMIT 2 с случае

$q = mysqli_query("SELECT * FROM tb ORDER BY date_post DESC LIMIT 2"); 
while($d = mysqli_fetch_array($q)) 
{ 
?> 
<td><?php echo $d['message'];</td> 
<?php 
} 

Пример показывают данные будут:

<td>Hi I'm last row</td> 
<td>Hi I'm second row</td> 

Хочу запрос ORDER BY DESC с LIMIT 2 , после чего я хочу, чтобы запрос выглядел следующим образом:

<td>Hi I'm second row</td> 
<td>Hi I'm last row</td> 

Идея?

+0

Try ORDER BY имя ASC – Robin

+0

При попытке сделать ORDER BY ASC, он покажет первые данные. Я хочу, запрашивать последние 2 данные, а затем показывать данные последней строки во второй строке таблицы, как мой пример – hiDayurie

+0

Непонятно, что что-то не работает для вас. Вы получаете ошибки? Не поступают ли данные в ожидаемом порядке? – Ilion

ответ

1

изменение $ Q

$q = mysqli_query("SELECT * FROM 
         (SELECT * FROM tb ORDER BY date_post DESC LIMIT 2) 
        AS new_tb ORDER BY date_post ASC"); 
+0

Ницца .. Он работал так, как я хотел. благодаря – hiDayurie

1

Вы можете добиться того, что с помощью вложенного запроса:

SELECT * 
FROM 
    (SELECT * FROM tb ORDER BY date_post DESC LIMIT 2) AS `t1` 
ORDER BY date_post 
0

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

1

Привет Попробуйте следующее:

$q = mysqli_query("SELECT * FROM tb ORDER BY date_post DESC LIMIT 2"); 
$arr_length = count($q); 
for($i=$arr_length-1;$i>=0;$i--) 
{ 
    echo "<td>".$q[$i]['message']."</td>"; 
} 
Смежные вопросы