X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Новостная колонка своими руками, помогите поправить код
Absorb
Absorb
Topic Starter сообщение 29.11.2009, 0:16; Ответить: Absorb
Сообщение #1


инзвините парни, за нижеследующий оффтоп...
ибо набирать 10 сообщений, для открытия своей темки лень чутку...

З,Ы, .пхп только начал изучать

[php]<?php

$result = mysql_query ("SELECT * FROM new_position",$db);
$myrow = mysql_fetch_array ($result);

$ij = 1;

do
{
$ij++;
printf
(" <p class='newname' align='center'><a href='hlam?id=%s'>%s</a></p>
<p align='center'>%s</p>
<p class='newname' align='center'>%s руб.</p>",

$myrow["id"], $myrow["name"], $myrow["text"], $myrow["price"]);
}
while ($myrow = mysql_fetch_array ($result) and $ij<=5);

?>[/php]

расскажу наглядно, хочу собственноручно сделать колонку на сайте, в которой будут из базы подгружаться
новости, с помошью этого когда они выводятся все(все имеющиеся в таблице), а нужно чтоб выводились только последние 5 новостей...
с помощью переменной $ij я добился что подгружаются только 5 но не последние вбитые в таблицу базы, а самые первые...

нужно так:

1 новость
2 новость
3 новость
4 новость
5 новость

вбил новую строчку(новость) в базе
должно выводится так:

2 новость
3 новость
4 новость
5 новость
6 новость

вбил еше новую строчку(новость) в базе
должно выводится так:

3 новость
4 новость
5 новость
6 новость
7 новость

кто понял что хочет мой большой ламерский мозг, прошу помоч...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 29.11.2009, 4:18; Ответить: ZiTosS
Сообщение #2


Absorb, обычно последние новости выводят в обратном порядке, то есть

7 новость
6 новость
5 новость
4 новость
3 новость

Ваш кустарный метод конечно не очень для этого подходит, я думаю подобный код будет более понятен и правелен:
[php]<?php

//запросить записи из таблицы new_position, отсортированные в обратном порядке по полю id и ограничить количество пятью первыми
$result = mysql_query( "SELECT * FROM new_position ORDER BY id DESC LIMIT 5", $db );

if( mysql_num_rows( $result ) ) /*если записей не 0 */
{
while( $myrow = mysql_fetch_array( $result ) )
{
printf ("
<p class='newname' align='center'><a href='hlam?id=%s'>%s</a></p>
<p align='center'>%s</p>
<p class='newname' align='center'>%s руб.</p>
",
$myrow["id"], $myrow["name"], $myrow["text"], $myrow["price"]);
}
}
} else { /*если записей 0 */
echo "Новостей нет";
}

?>[/php]

Хотя бы записал лучше даже так:
[php]<?php

//запросить записи из таблицы new_position, отсортированные в обратном порядке по полю id и ограничить количество пятью первыми
$result = mysql_query( "SELECT * FROM new_position ORDER BY id DESC LIMIT 5", $db );

if( mysql_num_rows( $result ) ) /*если записей не 0 */
{
while( $myrow = mysql_fetch_array( $result ) )
{
echo "<p class='newname' align='center'><a href='hlam?id={$myrow["id"]}'>{$myrow["name"]}</a></p>";
echo "<p align='center'>{$myrow["text"]}</p>";
echo "<p class='newname' align='center'>{$myrow["price"]} руб.</p>";
}
} else { /*если записей 0 */
echo "Новостей нет";
}

?>[/php]

Выведет так как я и сказал выше...

А если честно, то у новостей присущей характеристикой является дата её написания(создания). Вот именно по ней и надо сортировать, так как id хоть и уникально и нарастает, но явно не должно использоваться в сортировке.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
сообщение 29.11.2009, 14:41; Ответить: gaaarfild
Сообщение #3


Сортировка по дате актуальна, если дата задается собственноручно! =) Тогда, при желании можно создать эффект того, что новость добавлена раньше. А если таковой опции нет, то вполне можно и по ID сортировать. В обратном порядке. Если у поля стоит автоинкремент, то никуда последняя добавленная новость не денется. =)

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Оплатим зарубежные сервисы своими visa mc
0 gregory037 1280 22.7.2023, 21:56
автор: gregory037
Открытая тема (нет новых ответов) Продам генератор постов для соц. сетей, работающий на контенте со сторонних сайтов, со встроенными своими рекламными блоками под выведение нужной рекламы
0 Tutich 2493 19.8.2021, 9:47
автор: Tutich
Открытая тема (нет новых ответов) Сайты руками ответственного разработчика
1 1head 928 3.6.2020, 16:35
автор: Megoydagi
Открытая тема (нет новых ответов) Продвижение сайтов руками и головой 100% гарантия
7 ilkhomk 4521 3.2.2020, 19:45
автор: NataliaAntalia
Открытая тема (нет новых ответов) Требуется регистрация и постинг на форумах (руками)
База готовая.
3 falselight 3118 11.6.2018, 17:18
автор: ura1205


 



RSS Текстовая версия Сейчас: 29.3.2024, 19:33
Дизайн