| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > взять из бд последние три новости(импорт новостей) |
| Автор: ReactOS 13.4.2008, 23:01 | ||||||
| Привет! У меня след. проблема: создала в бд таблицу
добавление/удаление/изменение у меня работает :) вот одно НО! у меня есть "index.html" И есть таблица, где должны отображаться последние три новости из этой таблицы:
ps Самую первую я удалила :girl_crazy но я думаю вы это поймете! т.е. мне нужно, чтобы выбирались последние три новости, допустим у меня уже есть новости с ID от 1 до 150, тем больше ИД, тем более свежая у меня новость! Как выбирать именно последние три - у меня не получается
ps запросы не умею составлять, прошу не ругать, а научить! :) |
| Автор: Feldmarschall 13.4.2008, 23:04 |
| если БД - mysql, то в ней есть очень удобный оператор LIMIT, с какой записи, сколько выборку, соответственно, надо еще отсортировать в нужном порядке |
| Автор: Feldmarschall 13.4.2008, 23:16 |
| в mysql есть оператор ORDER BY который позволет сортировать базу как по возрастанию, так и по убыванию. |
| Автор: Fortop 14.4.2008, 00:33 | ||||
Вас еще не ломали? Мы идем к вам |
| Автор: skyboy 14.4.2008, 01:25 | ||
конечно, есть. и даже описан в документации. там, где http://dev.mysql.com/doc/refman/5.0/en/select.html#id4083187. |
| Автор: ReactOS 14.4.2008, 07:44 |
лучше не примере покажи, точнее кодом заодно меня научишь, если конечно не жалко потратить на меня время очень прошу рассказать, про дырки в моем запросе Добавлено через 46 секунд спасибо! |
| Автор: gta4kv 14.4.2008, 08:05 | ||
Rexona,
|
| Автор: mishaSL 14.4.2008, 13:32 | ||
"свежесть" новости, как в принципе и всего остального, лучше определять по дате (которая у вас кстати присутствует). Т.е. запрос должен быть примерно такой:
|
| Автор: Canarat 14.4.2008, 15:32 | ||
А почему бы не использовать просто приведение к типу int?
|
| Автор: gta4kv 14.4.2008, 15:42 | ||||
1. id может быть - "1s9p26" 2. А если подставить не int число то оно в любом случае будет равняться нулю, а в базе может быть и элемент с нулем. Добавлено через 42 секунды хотя нет, судя из структуры таблицы не может. |
| Автор: Feldmarschall 14.4.2008, 15:47 |
| Потому что правило универсальное. |
| Автор: Canarat 14.4.2008, 16:30 |
| gta4kv, по структуре ни одно из правил не выполняется. Смысл в универсализации, если эта переменная будет использоваться не только в запросе? В сообщении об ошибке, например? Если должно int - так пусть и будет int. Никаких жертв. |
| Автор: Feldmarschall 14.4.2008, 16:33 |
| Смысл универсализации в том, что человеку показывают универсальный способ обработки любых данных, поступающих в запрос. |
| Автор: flashaa 14.4.2008, 22:55 | ||
По-моему из этой строки "1s9p26" (int) выдаст число 1, хотя может я путаю с intval() UPD: я прав. Кстати за эту "интелектуальность" не юзаю приведение типов при валидации |
| Автор: Feldmarschall 15.4.2008, 08:15 |
| flashaa, все верно. intval - это lazy валидация. Здесь, скорее зависит от структуры приложения. В большинстве случаев достаточно приведения. Но более корректным, конечно будет способ с проверкой - регулярками, ctype_* и так далее |