Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> взять из бд последние три новости(импорт новостей) 
:(
    Опции темы
ReactOS
Дата 13.4.2008, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.12.2007

Репутация: нет
Всего: 33



Привет!

У меня след. проблема:

создала в бд таблицу
Код

-- Структура таблицы `news`
-- 

CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,
  `text` varchar(255) NOT NULL,
  `date` datetime NOT NULL,
  PRIMARY KEY  (`id`)
);



добавление/удаление/изменение у меня работает :)

вот одно НО!

у меня есть "index.html"

И есть таблица, где должны отображаться последние три новости из этой таблицы:

Код

INSERT INTO `news` VALUES (2, 'Первая Новость', '2008-04-13 23:33:27');
INSERT INTO `news` VALUES (3, 'Вторая Новость', '2008-04-13 23:33:35');
INSERT INTO `news` VALUES (4, 'Первая Новость', '2008-04-13 23:35:27');

ps Самую первую я удалила  :girl_crazy  но я думаю вы это поймете!

т.е. мне нужно, чтобы выбирались последние три новости, допустим у меня уже есть новости с ID от 1 до 150, тем больше ИД, тем более свежая у меня новость!
Как выбирать именно последние три - у меня не получается

Код

<html>
<head>
<title>index.html</title>
</head>
<body>

<table border = "1" align = "center">
<tr>
    <td>Последние Новости Проекта</td>
</tr>
<tr>
    <td>
    <?php

                //Здесь переменный с настройками!
    include_once("settings.php");

    $a = mysql_connect($host, $db_user, $db_pass);

    $b = mysql_select_db($db, $a);

    $id = $_REQUEST['id'];

    $sql = "SELECT text FROM news WHERE ID = \"$id\"";

    $res = mysql_query($sql, $crea_conn) or
    die(mysql_errno($crea_conn).mysql_error($crea_conn));

    ?>
    </td>
</tr>
</table>
</body>
</html>


ps
запросы не умею составлять, прошу не ругать, а научить!
:)
PM   Вверх
Feldmarschall
Дата 13.4.2008, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



если БД - mysql, то в ней есть очень удобный оператор LIMIT, с какой записи, сколько
выборку, соответственно, надо еще отсортировать в нужном порядке
PM   Вверх
ReactOS
Дата 13.4.2008, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.12.2007

Репутация: нет
Всего: 33



Цитата(Feldmarschall @  13.4.2008,  23:04 Найти цитируемый пост)
если БД - mysql

а по-моему сообщению разве не видно очевидного? что именно mysql!

Цитата(Feldmarschall @  13.4.2008,  23:04 Найти цитируемый пост)
то в ней есть очень удобный оператор LIMIT

спасибо за инфу! smile точно, а я и забыла про это...

Цитата(Feldmarschall @  13.4.2008,  23:04 Найти цитируемый пост)
с какой записи, сколько
выборку

ну будет у меня 150 Новостей и сделаю LIMIT 147, 150 , и что буду все время по возрастанию вручную изменять? потом LIMIT 160, 163???

разве нет запроса в mysql, чтобы взять именно последние 3 новости??

Цитата(Feldmarschall @  13.4.2008,  23:04 Найти цитируемый пост)
выборку, соответственно, надо еще отсортировать в нужном порядке

ну по-любому с ID=1 пойдет и дальше по возрастанию! по-другому не сделаешь же...
PM   Вверх
Feldmarschall
Дата 13.4.2008, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



в mysql есть оператор ORDER BY
который позволет сортировать базу как по возрастанию, так и по убыванию.
PM   Вверх
Fortop
Дата 14.4.2008, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(Rexona @  13.4.2008,  23:01 Найти цитируемый пост)

Код

    $id = $_REQUEST['id'];
    $sql = "SELECT text FROM news WHERE ID = \"$id\"";


Вас еще не ломали? Мы идем к вам smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
skyboy
Дата 14.4.2008, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Rexona @  13.4.2008,  22:10 Найти цитируемый пост)
разве нет запроса в mysql, чтобы взять именно последние 3 новости??

конечно, есть.
и даже описан в документации. там, где про limit.
PM MAIL   Вверх
ReactOS
Дата 14.4.2008, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.12.2007

Репутация: нет
Всего: 33



Цитата(Fortop @  14.4.2008,  00:33 Найти цитируемый пост)
Вас еще не ломали? Мы идем к вам

лучше не примере покажи, точнее кодом smile
заодно меня научишь, если конечно не жалко потратить на меня время smile
очень прошу рассказать, про дырки в моем запросе smile

Добавлено через 46 секунд
Цитата(skyboy @  14.4.2008,  01:25 Найти цитируемый пост)
конечно, есть.
и даже описан в документации. там, где про limit. 

спасибо!

PM   Вверх
gta4kv
Дата 14.4.2008, 08:05 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Rexona
Код

$id = mysql_real_escape_string( $_REQUEST['id'] );

PM MAIL   Вверх
mishaSL
Дата 14.4.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



Цитата(Rexona @  13.4.2008,  23:01 Найти цитируемый пост)
тем больше ИД, тем более свежая у меня новость!

"свежесть" новости, как в принципе и всего остального, лучше определять по дате (которая у вас кстати присутствует).

Т.е. запрос должен быть примерно такой:
Код

SELECT `text` FROM `news` ORDER BY `date` DESC LIMIT 3



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Canarat
Дата 14.4.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 11.3.2008
Где: Каспий

Репутация: 5
Всего: 5



Цитата(gta4kv @  14.4.2008,  08:05 Найти цитируемый пост)
$id = mysql_real_escape_string( $_REQUEST['id'] );

А почему бы не использовать просто приведение к типу int?
Код

$id=(int) $_REQUEST['id'] ;

PM MAIL   Вверх
gta4kv
Дата 14.4.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата(Canarat @ 14.4.2008,  15:32)
Цитата(gta4kv @  14.4.2008,  08:05 Найти цитируемый пост)
$id = mysql_real_escape_string( $_REQUEST['id'] );

А почему бы не использовать просто приведение к типу int?
Код

$id=(int) $_REQUEST['id'] ;

1. id может быть - "1s9p26"
2. А если подставить не int число то оно в любом случае будет равняться нулю, а в базе может быть и элемент с нулем.

Добавлено через 42 секунды
хотя нет, судя из структуры таблицы не может.
PM MAIL   Вверх
Feldmarschall
Дата 14.4.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Потому что правило универсальное.

PM   Вверх
Canarat
Дата 14.4.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 212
Регистрация: 11.3.2008
Где: Каспий

Репутация: 5
Всего: 5



gta4kv, по структуре ни одно из правил не выполняется.

Смысл в универсализации, если эта переменная будет использоваться не только в запросе? В сообщении об ошибке, например? Если должно int - так пусть и будет int. Никаких жертв.
PM MAIL   Вверх
Feldmarschall
Дата 14.4.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Смысл универсализации в том, что человеку показывают универсальный способ обработки любых данных, поступающих в запрос.


Это сообщение отредактировал(а) Feldmarschall - 15.4.2008, 08:12
PM   Вверх
flashaa
Дата 14.4.2008, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Цитата(gta4kv @  14.4.2008,  15:42 Найти цитируемый пост)
1. id может быть - "1s9p26"
2. А если подставить не int число то оно в любом случае будет равняться нулю, а в базе может быть и элемент с нулем.

По-моему из этой строки "1s9p26" (int) выдаст число 1, хотя может я путаю с intval()
UPD: я прав. Кстати за эту "интелектуальность" не юзаю приведение типов при валидации

Это сообщение отредактировал(а) flashaa - 14.4.2008, 23:05
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1309 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.