Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » оператор If... Else

Ответить
Настройки темы
оператор If... Else

Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Сеществует файл index.php
PHP код: Выделить весь код

<?php

//....другие новости вида n04 или какого-либо другого
$n04="новость 4";
$n03="новость 3";
$n02="новость 2";
$n01="новость 1";

$default="<h2>Новости</h2>
$n04
$n03
$n02
<br><a href=\"index.php?id=archive\" title=\"Архив\">Архив</a>"
;

$archive="<h2>Архив</h2>
$n04
$n03
$n02
$n01
"
;

if(!
array_key_exists('id',$_GET)) //Проверка переменной, если нет, то default
{$_GET['id']='default';}

switch (
$_GET['id']) {
case 
'archive': echo "$archive"; break;

default: 
//если переменная name не задана
echo "$default"; break;}
?>

Как сделать, чтобы по умолчанию по ссылке http://www.my_syte/index.php
грузились только последние 3 новости, а по сслылке
http://www.my_syte/index.php?id=archive все новости, которые есть, для того
чтобы не вписывать постоянно в $default и $archive новые переменные.
Заранее благодарен.

Отправлено: 16:53, 25-07-2005

 

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Есть такая конструкция: isset($var), возвращает TRUE, если переменная установлена, то есть
PHP код: Выделить весь код

if (isset($_GET['id'])) echo "все новости";
else echo 
"только 3"

Я бы посоветовал бы более конкретные переменные передовать, например $news_number, то есть кол-во новостей на вывод
Если переменная не установлена (!isset($var)), то стандартный случай, если же да, то только определённое кол-во новостей, если же -1, то все новости из базы

Отправлено: 19:20, 25-07-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Более читабельный первоначальный код:
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; 
}
?>

vadimiron
Код: Выделить весь код
Есть такая конструкция: isset($var), возвращает TRUE, если переменная установлена
Это существует и работает нормально.
Самая большая проблема - как определить последние 3 новости или последнюю новость,
она ведь может быть и news_05 и news_06 и т.д.
Как я понимаю, необходимо задать max, возможно через массив новостей и получить что-то вроде:
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_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; 
}
?>


Отправлено: 07:01, 27-07-2005 | #3


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Если новости берутся из БД MYSQL использую LIMIT и ORDER BY DESC.
или новости хранить в массиве(списке)... тогда переворачиваем массив и выводим первые 3 элемента.

Отправлено: 10:52, 27-07-2005 | #4


Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата:
Самая большая проблема - как определить последние 3 новости или последнюю новость,
она ведь может быть и news_05 и news_06 и т.д.
Я не очень понимаю, как Вы управляете нововстями?? То есть где текст новости сохранён, и как вы их получаете в скрипт из сохраннёного вида?? Почему текст новостей у вас в отдельных переменных???

-------
Fortes fortuna adiuvat


Отправлено: 13:04, 27-07-2005 | #5


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
if (isset($_GET['id']))
можно обойтись и без isset
PHP код: Выделить весь код

if(@$var

вернет true если переменная определена и содержит любое значение отличное от 0.

Отправлено: 17:11, 27-07-2005 | #6


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нужна была примерно такая конструкция. Правда тема топика получилась
немного не в тему. Сорри. Тогда еще было непонятно как реализовать.
PHP код: Выделить весь код

<?php

Error_Reporting
(E_ALL & ~E_NOTICE); //Денвер 
$news[1122452295] = "новость 5"
$news[1122452294] = "новость 4"
$news[1122452293] = "новость 3"
$news[1122452292] = "новость 2"
$news[1122452291] = "новость 1";
$conunt 0;
  if(!isset(
$_GET['arhive'])) 
  { 
     foreach(
$news as $line
     {  
        if(
$count>=3) break;
        echo 
$line."<br>"
        
$count++;
     }                
  } 
  else 
  {
     foreach(
$news as $line
     { 
        echo 
$line."<br>"
     }  
  }
?>

теперь другая проблема.
Как можно сделать так, чтобы выводило на той странице, где 3 новости под
ними ссылку на архив. Примерного такого вида:
<a href="index.php?archive" title="Архив">Архив</a>
Чтобы получить:
index.php
Код: Выделить весь код
новость 5
новость 4
новость 3
Архив
index.php?archive
Код: Выделить весь код
новость 5
новость 4
новость 3
новость 2
новость 1
А то куда не поставлю - всегда ссылка либо копируется несколько раз либо
"выскакивает" на странице index.php?archive

Отправлено: 20:04, 28-07-2005 | #7


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


не понял вопроса...
а просто в конец кода добавить echo, никак?
зачем ссылку в цикл пихать?

Отправлено: 22:17, 28-07-2005 | #8


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
а просто в конец кода добавить echo, никак?
зачем ссылку в цикл пихать?
Так тогда эта ссылка появится и на index.php?archive и будет указывать на свою же страницу.

Отправлено: 07:42, 29-07-2005 | #9


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


PHP код: Выделить весь код

Такая конструкция, при которой ссылка не появляется на  index.php?archive

<?php 
Error_Reporting
(E_ALL & ~E_NOTICE);
$news[1122452295] = "новость 5"
$news[1122452294] = "новость 4"
$news[1122452293] = "новость 3"
$news[1122452292] = "новость 2"
$news[1122452291] = "новость 1";
  
$conunt 0
  if(!isset(
$_GET['arhive'])) 
  { 
     foreach(
$news as $line
     { 
        if(
$count>=3) break;
        echo 
$line."<br>"
        
$count++; 
     } 
     echo 
"<a href=\"index.php?arhive\" title=\"Архив\">Архив</a>"
   }
  else 
  { 
     
// Выводим все новости 
     
foreach($news as $line
     { 
        echo 
$line."<br>"
     } 
  }
?>

Другой вопрос: возможно ли модернизировать данный скрипт под несколько страниц. например index.php?archive, index.php?megnew и т.д.

Отправлено: 08:43, 29-07-2005 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » оператор If... Else

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как оператор округляет проценты united Мобильные ОС, смартфоны и планшеты 11 18-02-2008 13:19
[решено] Javascript - Оператор === hasherfrog Вебмастеру 5 25-07-2007 14:05
Помогите начинающему понять оператор Си++ Guest Программирование и базы данных 4 11-10-2004 18:56
GPRS + Оператор kiro Мобильные ОС, смартфоны и планшеты 3 21-03-2004 21:19
Delphi - Оператор доступа в Delphi LedWorm Программирование и базы данных 6 29-02-2004 20:46




 
Переход