хочу сделать чтоб на странице в маленькое окно выводило только последнею добавленную новость , пробовал так:
$m = mysql_query("SELECT id FROM news");
$n = mysql_fetch_array($m);
$k = count($n);
вроде насколько я понимаю
$n
- массив ...в таблице у меня 5 новостей соответственно 5 id ...
но если смотреть
echo $k;
получается всего 2 элемента ...
Спустя 4 минуты, 50 секунд (14.12.2010 - 00:09) inpost написал(а):
ORDER BY `id` DESC LIMIT 1
Спустя 1 минута, 44 секунды (14.12.2010 - 00:10) kovaldm написал(а):
Ты не понял как работает функция mysql_fetch_array. У тебя в $n два одинаковых элемента $n[0] и $n['id']. Чтобы вытащить все новости нужно засунуть ее в цикл и там создавать массив или еще чего-то делать.
Спустя 3 минуты, 19 секунд (14.12.2010 - 00:14) Invis1ble написал(а):
Цитата |
получается всего 2 элемента |
Все правильно получается, ты выбираешь только первое попавшееся значение одного поля - id. А два элемента, из-за того, что ты используешь ф-цию mysql_fetch_array(), которая возвращает список и ассоциативный массив, вместо mysql_fetch_assoc(), которая возвращает только ассоциативный. Если бы ты использовал mysql_fetch_assoc(), то был бы только один элемент.
Цитата |
только последнею добавленную новость |
попробуй
SELECT MAX(`id`) FROM news, но лучше по времени создания записи
SELECT MAX(`created_at`) FROM news
как-то так...
Спустя 1 минута, 39 секунд (14.12.2010 - 00:15) Invis1ble написал(а):
Цитата |
ORDER BY `id` DESC LIMIT 1 |
лучше так
ORDER BY `created_at` DESC LIMIT 1
Спустя 1 минута, 9 секунд (14.12.2010 - 00:16) shmali написал(а):
Пасиб ребята )) я на самом деле не правильно думал )) сейчас прочитал про order by id отдельное спасибо за подсказку)) и Invisible огромное спасибо )) очень доступно объяснил))