Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Упростить код
 
 автор: gofree   (12.11.2011 в 22:50)   письмо автору
 
 

Есть код


<?
if (!isset($_GET['a']) || $_GET['a'] == "") {
//Запрос к базе
 
} else {
 if(isset(
$_GET['a']) && $_GET['a'] != "" && !isset($_GET['b']) && !isset($_GET['c']) || $_GET['b'] == "") {
 
//Запрос к базе
 
}
 elseif(isset(
$_GET['b']) && $_GET['b'] != "" && !isset($_GET['c'])) {
 
//Запрос к базе
 
}
 elseif(isset(
$_GET['c']) && $_GET['c'] != "") {
//Запрос к базе
 
}
?>


Вот как можно сделать его попроще? Задача такая, в зависимости от ссылки, т.е. от категории в которой находимся, подставлять нужный запрос WHERE к базе.
site.ru
site.ru/cat1
site.ru/cat1/cat2
site.ru/cat1/cat2/cat3

  Ответить  
 
 автор: nikita2206   (12.11.2011 в 22:56)   письмо автору
 
   для: gofree   (12.11.2011 в 22:50)
 

во-первых конечно код страшный.
упростить можно тут по всякому.
как вариант, переписать правило рерайта так, чтобы любой path шел в $_GET['a']
RewriteRule /(.*) /index.php?a=$1
а в пхп разбить строку по слешам (см. explode), циклом пройтись по массиву, добавляя условия к sql запросу

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования