|
|
|
|
|
для: cheops
(29.07.2005 в 11:38)
| | Однозначно: МОЖНО. Однако, перефразируя сопрос cheops: ЗАЧЕМ ??? | |
|
|
|
|
|
|
|
для: KOTer
(29.07.2005 в 08:46)
| | >Другой вопрос: возможно ли модернизировать данный скрипт под
>несколько страниц. например index.php?archive,
>index.php?megnew и т.д.
А чем эти страницы должны друг от друга отличаться? | |
|
|
|
|
|
|
|
для: cheops
(28.07.2005 в 20:41)
| | Спасибо!!!!
Проблема была где-то со скобкакми :)
Другой вопрос: возможно ли модернизировать данный скрипт под несколько страниц. например index.php?archive, index.php?megnew и т.д. | |
|
|
|
|
|
|
|
для: KOTer
(28.07.2005 в 20:04)
| | Для этого следует реорганизовать код следующим образом
<?php
$conunt = 0;
if(!isset($_GET['id']))
{
// Выводим только три новости
foreach($news as $line)
{
if($count>=3) break; // Преждевременный выход из цикла
echo $line."<br>";
$count++;
}
echo "<a href=\"index.php?id=archive\" title=\"Архив\">Архив</a>";
}
else
{
// Выводим все новости
foreach($news as $line)
{
echo $line."<br>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(27.07.2005 в 12:25)
| | All. Спасибо за помощь.
Ziq
В принципе такая конструкция планируется, чтобы уйти от большого
количества файлов. Так что смысла возвращаться к множеству разрозненных
частей нет.
[CHOL]Scorpion
У меня что-то не получается, подскажи где что ни так (в голове наверно:))
Выводит в столбец 2 3 4 и всё. Пробовал менять и текст новости ("новость
N") и индекс ("$news[N]") - всё равно.
cheops
Как можно сделать так, чтобы выводило на той странице, где 3 новости под
ними ссылку на архив. Примерного такого вида:
<a href="index.php?archive" title="Архив">Архив</a>
Чтобы получить:
index.php
новость 5
новость 4
новость 3
Архив
|
index.php?archive
новость 5
новость 4
новость 3
новость 2
новость 1
|
А то куда не поставлю - всегда ссылка либо копируется несколько раз либо
"выскакивает" на странице index.php?archive | |
|
|
|
|
|
|
|
для: Ziq
(27.07.2005 в 08:00)
| | А ещё полезно почитать что такое массив и как он выглядит.
База или не база, всё в итоге всё равно ведь к массиву сводится. Ну вот и пойдём от этого.
1. Заменим искомый пример:
$news_05="новость 5";
$news_04="новость 4";
$news_03="новость 3";
$news_02="новость 2";
$news_01="новость 1";
|
на
$news[0]="новость 1";
$news[1]="новость 2";
$news[2]="новость 3";
$news[3]="новость 4";
$news[4]="новость 5";
|
Сразу оговорюсь, писал элементы по порядку. Отсортировать как вам нада можно без каких либо проблем. Благо функций сортировки до жопы.
Теперь, что выводим? Ну к примеру так:
if ($actual == "arhiv"){
for ($i = 0; $i<count($news); $i++){
echo ($news[$i]."<BR>");
}
}
else{
$start_index = count($news) - 3;
for ($start_index; $start_index<count($news); $start_index++){
echo ($start_index."<BR>");
}
}
|
| |
|
|
|
|
|
|
|
для: KOTer
(27.07.2005 в 07:41)
| | Нужно как-то привязать каждую новость к времени, например создав ассоциативный массив, где в качестве ключа будет выступать время новости в секундах, прошедших с 1 января 1970 года.
<?php
$news[1122452298] = "новость 5";
$news[1122452298] = "новость 4";
$news[1122452298] = "новость 3";
$news[1122452298] = "новость 2";
$news[1122452298] = "новость 1";
?>
|
тогда массив $news можно сортировать по ключу, при помощи функции ksort() или kasort().
<?php
ksort($news);
// kasort($news);
?>
|
Тогда, если параметр id не опеределён - выводим только три новости из массива $news, а если определён - то все
<?php
$conunt = 0;
if(!isset($_GET['id']))
{
// Выводим только три новости
foreach($news as $line)
{
if($count>=3) break; // Преждевременный выход из цикла
echo $line."<br>";
$count++;
}
}
else
{
// Выводим все новости
foreach($news as $line)
{
echo $line."<br>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: KOTer
(27.07.2005 в 07:41)
| | В данном случае нужно воспользоваться базой данных или в крайнем случае блокнотами. Смысл следующий создаешь папку news а в ней тексты типа "news".time()."txt", это будет выглядеть примерно так news1122436565.txt. Затем считываешь название всех файлов, которые начинаются с news и заносишь в массив (можно это сделать функцией readdir()). Сортируешь массив по убыванию и берешь первые три значения. Теперь дело техники в функцию fread() подставляешь название текста. и выводишь на экран. Вроде все | |
|
|
|
|
|
|
| Здравствуйте. Сеществует файл index.php:
<?php
$news_05="новость 5";
$news_04="новость 4";
$news_03="новость 3";
$news_02="новость 2";
$news_01="новость 1";
if(!array_key_exists('id',$_GET)) {$_GET['id']='default';}
switch ($_GET['id']) {
case 'archive': echo "<h2>Архив</h2>$news_04 $news_03 $news_02 $news_01";
break;
default: echo "<h2>Новости</h2> $news_04 $news_03 $news_02
<br><a href=\"index.php?id=archive\" title=\"Архив\">Архив</a>";
break;
}
?>
|
Как сделать, чтобы по умолчанию по ссылке http://www.my_syte/index.php
грузились только последние 3 новости, а по сслылке
http://www.my_syte/index.php?id=archive все новости
Самая большая проблема - как определить последние 3 новости или последнюю новость,
она ведь может быть и news_05 и news_06 и т.д.
Как я понимаю, необходимо задать max, возможно через массив новостей и получить что-то вроде:
<?php
$news_05="новость 5";
$news_04="новость 4";
$news_03="новость 3";
$news_02="новость 2";
$news_01="новость 1";
if(!array_key_exists('id',$_GET)) {$_GET['id']='default';}
switch ($_GET['id']) {
case 'archive': echo "<h2>Архив</h2>$news_max.....$news_00";
break;
default: echo "<h2>Новости</h2> 3 последних переменных, т.е. $news_(max) $news_(max-1) $news_(max-2)
<br><a href=\"index.php?id=archive\" title=\"Архив\">Архив</a>";
break;
}
?>
|
Заранее благодарен. | |
|
|
|
|