|
Автор |
Сообщение |
Светозар
Участник тусовки
Зарегистрирован: 20.02.2010 Сообщения: 354 Откуда: Москва
|
|
|
|
Дело в том, что сейчас, чтобы добавить, отредактировать, или удалить новость, используются 5 файлов, а хотелось бы организовать в 1. Через Else не получается, тоесть
if ..
else
...
if..
else |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
почему не получается? Анализируешь GET/POST-переменные и выполняешь определенные действия.
Плюс ко всему даже если все не собирать в одном сценарии (лично я не люблю такой подход, потому что сценарий потом получается мега огромный) нужно вынести общую часть (подключение к БД и т.д.) в один файл и подключать его с помощью include_once.
Также нужно использовать шаблонизаторы, чтобы вынести HTML-код за пределы PHP-кода |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
Светозар
Участник тусовки
Зарегистрирован: 20.02.2010 Сообщения: 354 Откуда: Москва
|
|
|
|
den, я из УГ скрипта Попова сделал конфетку, почти. Так вот там, у меня получилось около 15 файлов, чтобы добавлять новости и т.д. Подключение я вынес, подключил шаблонизатор из книги + старый оставил. В общем, 7мб получается. Мне это немного не нравится.
Сегодня весь день маюсь со скриптом. Устал жутко, а так и не получилось сделать что-то вроде такого:
/admin/index.php?do=articles?do=addnews с выводом отправлена новость, или нет |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
нужно так
/admin/index.php?do=articles&do=addnews |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
Светозар
Участник тусовки
Зарегистрирован: 20.02.2010 Сообщения: 354 Откуда: Москва
|
|
|
|
Моего мозга на это не хватает! |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Ты сделал ошибку в URL, вместо символа & ты используешь ?, поэтому и не работает! Посмотри на свой URL
/admin/index.php?do=articles?do=addnews
и на мой
/admin/index.php?do=articles&do=addnews |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
Светозар
Участник тусовки
Зарегистрирован: 20.02.2010 Сообщения: 354 Откуда: Москва
|
|
|
|
den, я не допираю, как сделать поэтапные действия в файле.
Методом do-while - там столько проверок нужно делать ..... |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Да какой там do-while. Смотри как делается
Тебе нужно установить реакцию на do=articles и do=addnews. Но получается, что скрипту передаются две переменным с одним именем, следовательно первое значение (articles) потеряется:
admin/index.php?do=articles&do=addnews
Нужно сделать URL так:
admin/index.php?do=articles&action=addnews
Следовательно мы вторую переменную называем action. Далее сам код
Код: |
// проверяем, передана ли сценарию переменная do
if (isset($_REQUEST['do']) {
// Да, переменная передана
$do = $_REQUEST['do'];
if ($do==="articles") {
// нужно что-то сделать со статьями
// чтобы понять, что нужно анализировать переменную action
// если переменная action не установлена, умираем
if (!isset($_REQUEST['action']) die('No action specified');
$action = $_REQUEST['action'];
// Анализируем действие
if ($action==="addnews") { // добавляем статью }
if ($action==="delnews") { // удаляем статью }
if ($action==="deleteall") { // удаляем все }
// и т.д.
}
}
|
|
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
Светозар
Участник тусовки
Зарегистрирован: 20.02.2010 Сообщения: 354 Откуда: Москва
|
|
|
|
Спасибо, буду разбираться. |
|
Вернуться к началу |
|
|
Светозар
Участник тусовки
Зарегистрирован: 20.02.2010 Сообщения: 354 Откуда: Москва
|
|
|
|
я вот так сделал:
Код: |
$do = $_GET['do'];
if($do==''){
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db);
$myrow = mysql_fetch_array($result);
}
if($do=='contacts'){
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='contacts'",$db);
$myrow = mysql_fetch_array($result);
}
|
Как правильно вставить проверку $_GET['do'] а то мне пишет синтаксическую ошибку "{" |
|
Вернуться к началу |
|
|
Светозар
Участник тусовки
Зарегистрирован: 20.02.2010 Сообщения: 354 Откуда: Москва
|
|
|
|
проблему решил так: if (isset($_GET['do'])) {$do = $_GET['do'];} |
|
Вернуться к началу |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Правильнее так
if (!isset($_GET[do])) {
// переменная не передавалась, делаем что-то
}
elseif ($_GET[do]==="contacts") {
} |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
А я как раз в это время писал тебе ответ! |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
Светозар
Участник тусовки
Зарегистрирован: 20.02.2010 Сообщения: 354 Откуда: Москва
|
|
|
|
но if($do==''){
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db);
$myrow = mysql_fetch_array($result);
}
if($do=='contacts'){
$result = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='contacts'",$db);
$myrow = mysql_fetch_array($result);
}
выводит только первые два, а остальные нет |
|
Вернуться к началу |
|
|
Светозар
Участник тусовки
Зарегистрирован: 20.02.2010 Сообщения: 354 Откуда: Москва
|
|
|
|
if (!isset($_GET[do])) {
// переменная не передавалась, делаем что-то
}
elseif ($_GET[do]==="contacts") {
}
а потом через elseif всё? А чем мой вариант плох? |
|
Вернуться к началу |
|
|
|
|