[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Count
shmali
вот какое дело:
хочу сделать чтоб на странице в маленькое окно выводило только последнею добавленную новость , пробовал так:

$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 огромное спасибо )) очень доступно объяснил))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.