[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Switch запрос из бд .
fortuna
Нужно вывести данные из БД .
$go = empty($_GET['go']) ? 'main' : $_GET['go'];

switch ($go)
{
case ('main'):

break;

case ('reg'):

break;

default;
// всё суда если выше не попало

}
include('/templates/tpl/index.php');

index.php

<?PHP include ($go.'.php'); ?>


если ссылка срабатывает вид такой
site.ru/index.php?do=reg
то выводит регистрацию ..
А вот если сюда хочю вставить данные любые в go=запрос к бд попадает в default и дальше выводит ошибку
Warning: include() [function.include]: Failed opening '12.php' for inclusion

С ней всё понятно что 12 и тд. нету после go , а как решить эту проблему ?
Всё что не попало в case попадает в default обрабатывался БД.
Я подозреваю что нужно сделать проверку в index .php тут

<?PHP include ($go.'.php'); ?>

Не можно решить проблему просто вот так .
 
switch ($go)
{
case ('main'):

break;

case ('reg'):

break;

default;
include('/templates/tpl/default.php');
exit;
}

include('/templates/tpl/index.php');

Тогда в дефаулте можно сделать запрос к бд , а как можно сделать по другому ?



Спустя 6 минут, 30 секунд (3.06.2012 - 14:39) inpost написал(а):
ничего не понимаю. Код показывай лучше

Спустя 21 минута, 44 секунды (3.06.2012 - 15:01) fortuna написал(а):
inpost
Там кода нету вообще , я всё выложил .. ща обьясню по другому .
вот ссылка .

site/index.php //main главная
Она подгружает данные (новости к примеру)

site/index.php?go=reg
Подгружает регистрацию .
Это всё срабатывает case .

А вот по данной ссылке хочу сделать запрос к БД .
site/index.php?go=//тут все что угодно может быть что не попало в case
Это уже будет срабатывать default . И он приведёт к ошибке .. так как
go=4383284 // к примеру
А 4383284 нет такого файла .

$go = empty($_GET['go']) ? 'main' : $_GET['go'];

switch ($go)
{
case ('main'):
//тут функция
break;

case ('reg'):
//тут функция
break;

default;
}

include ($go.'.php');

В папке 3 файла .
index.php Это главная страница
main = шаб
reg = регис.

как видно если я напишу ересть в go=eens то он выводит что нет файла eens.php , а мне не нужно чтобы он это выводит , а срабатывала БД .

Как я выше написал можно сделать вот так .
$go = empty($_GET['go']) ? 'main' : $_GET['go'];

switch ($go)
{
case ('main'):
//тут функция
break;

case ('reg'):
//тут функция
break;

default;
include(db_vivod.php);
exit();
}

include ($go.'.php');

То если не чего не попало в case он выведет db_vivod.php который уже будет в папке с другими файлами , а там я буду делать запрос .
Но тут одна проблема мне нужно весь шаблон из index.php копировать и вставлять в db_vivod.php

Спустя 4 часа, 45 минут, 24 секунды (3.06.2012 - 19:46) inpost написал(а):
php.net, смотри синтаксис include, switch...

Зачем весь шаблон копировать?! Ничего не понимаю, он итак работает, это же не редирект у тебя.

Спустя 1 день, 16 часов, 23 минуты, 33 секунды (5.06.2012 - 12:10) fortuna написал(а):
Решил свою проблему ещё вчера .
 $arr = array('main','reg');
if(in_array($go,$arr))
{
include ($go.'.php');
}
else
{
echo"Подключение к бд , запрос .";
}


Вставил в шаб index.php , если из свитча не чего не попадает то делаем подключение .
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.