13 августа 2013
10836
Сортировка на php и mysql, sortable, методы сортировки

Сортировка на PHP и MySQL

PHP
Демонстрация » Скачать »

Материал посвящен сортировке на php и mysql. В предыдущих уроках ранее, мы уже рассматривали подобные сортировки, к примеру - сортировка и выборка с кнопкой применить или сортировка и выборка без кнопки применить, ну я решил немного поменять код, скажем так , сделать более правильным его и перевести на "сессии", вместо "куков". А также добавил некоторые дополнительные параметры, которых не было раньше и меня о них спрашивали люди. Допустим, кнопку "сброса сортировки", "сортировка ссылками выбора марки" и "сортировка по алфавиту, по цене". Скрипт я реализовал в демо версии и можно скачать его исходники.

 

Он написан на php и mysql, так что урок предоставлен уже для среднего класса, новичкам придется начать изучение хотя бы с азов этих языков, чтобы понимать принцип структуры скрипта.

 

Перед Вами его картинка. Хотел бы остановить свое внимание, что заполнял базу автомобилей в слепую, то есть не подбирал "точное" совпадение в реальном мире сортировки, поэтому суть заключается "только" в выполнении назначения сортировки! Прошу это учесть и не придираться к каким-либо параметрам.

 

 

 Сортировка на PHP

 

 

Давайте теперь перейдем к рассмотрению самого кода скрипта, разберем все моменты, которые встретятся при его разработке.

 

Первый шаг. MySQL - База данных и таблицы.

 

Сначала создадим базу данных sort, в ней будут две таблицы catalog - таблица с автомобилями и catalog_brend - таблица с марками автомобилей. Если же в процессе, Вы захотите разработать более сложную структуру сортировки, возможно Вам потребуется создать другие таблицы, к примеру catalog_cat, в которой будите хранить категории автомобилей (или чего иного).

Дамп таблицы catalog.

 

--
-- Структура таблицы `catalog`
--

CREATE TABLE IF NOT EXISTS `catalog` (
  `id` bigint(240) unsigned NOT NULL AUTO_INCREMENT,
  `articul` varchar(255) NOT NULL,
  `catalog_brend` int(20) NOT NULL,
  `date` date NOT NULL,
  `title` varchar(255) NOT NULL,
  `img` varchar(255) NOT NULL,
  `city` varchar(255) NOT NULL,
  `tip_cuzova` varchar(255) NOT NULL,
  `tip_dvigately` varchar(255) NOT NULL,
  `privod` varchar(255) NOT NULL,
  `kpp` varchar(255) NOT NULL,
  `cvet` varchar(100) NOT NULL,
  `moshnosti` int(30) unsigned NOT NULL,
  `price` int(40) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=113 ;

--
-- Дамп данных таблицы `catalog`
--

INSERT INTO `catalog` (`id`, `articul`, `catalog_brend`, `date`, 
`title`, `img`, `city`, `tip_cuzova`, `tip_dvigately`, `privod`, 
`kpp`, `cvet`, `moshnosti`, `price`) VALUES
(1, 'mazda xedos-9', 1, '2013-08-02', 'Mazda Xedos 9', 
'img/mazda_xedos9.jpg', 'Москва', 'Седан', 'Бензин', 'Задний', 
'Механическая', 'Черный', 100, 220000),
(2, 'mazda rx-8', 1, '2013-07-02', 'Mazda RX 8', 
'img/mazda_rx8.jpg', 'Королев', 'Хэдчбэк', 'Бензин', 'Полный', 
'Автомат', 'Желтый', 210, 550000), 
(3, 'mazda rx-7', 1, '2013-04-02', 'Mazda RX 7', 
'img/mazda_rx7.jpg',  'Москва', 'Седан', 'Бензин', 'Передний', 
'Автомат', 'Красный', 150, 300000), 
(4, 'mazda luci', 1, '2011-07-02', 'Mazda Luci', 
'img/mazda_luci.jpg', 'Воронеж', 'Седан', 'Бензин', 'Задний', 
'Механическая', 'Белый', 90, 100000), 
(5, 'mazda cx5', 1, '2013-05-08', 'Mazda CX 5', 
'img/mazda_cx5.jpg', 'Москва', 'Внедорожник', 'Бензин', 'Полный', 
'Автомат', 'Синий', 250, 900000), 
(6, 'mazda 3', 1, '2013-08-13', 'Mazda 3', 'img/mazda_3.jpg', 
'Королев', 'Купе', 'Бензин', 'Задний', 'Автомат', 'Красный', 
180, 390000),
(7, 'lamborgini lm', 2, '2009-01-31', 'Lamborgini LM', 
'img/lamborgini_lm.jpg', 'Москва', 'Внедорожник', 'Дизель', 
'Полный', 'Механическая', 'Красный', 300, 2100000),
(8, 'lamborghini gallardo gt600', 2, '2012-10-07', 
'Lamborghini Gallardo GT600', 'img/lamborghini_gallardo_gt600.jpg', 
'Воронеж', 'Седан', 'Бензин', 'Полный', 
'Автомат', 'Желтый', 400, 8000000),
(9, 'ferrari f 430', 3, '2001-11-02', 'Ferrari F-430', 
'img/ferrari_f_430.jpg', 'Королев', 'Седан', 'Бензин', 'Задний', 
'Автомат', 'Красный', 350, 4500000),
(10, 'ferrari 599 gtb fiorano', 3, '2013-08-04', 
'Ferrari 599-GTB fiorano', 'img/ferrari_599_gtb_fiorano.jpg', 
'Москва', 'Хэдчбэк', 'Бензин', 'Полный', 'Автомат', 'Синий', 410, 
7200000),
(11, 'ferrari 458 spider', 3, '2010-04-04', 
'Ferrari 458 spider', 'img/ferrari_458_spider.jpg', 'Воронеж', 
'Седан', 'Дизель', 'Полный', 'Механическая', 'Желтый', 480, 
11000000);

 

Дамп таблицы catalog_brend.

 


--
-- Структура таблицы `catalog_brend`
--

CREATE TABLE IF NOT EXISTS `catalog_brend` (
  `id` int(100) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=16 ;

--
-- Дамп данных таблицы `catalog_brend`
--

INSERT INTO `catalog_brend` (`id`, `title`) VALUES
(3, 'Ferrari'),
(2, 'Lamborgini'),
(1, 'Mazda');

 

 

Второй шаг. Файл function.php.

 

Этот файл является основным в плане функционала. Сначала мы запускаем сессию, подключаем базу данных, проверяем на ошибки и устанавливаем кодировку cp1251.

 

session_start();
$db = mysql_connect ("localhost", "root", ""); 
//подключение к базе данных
mysql_select_db ("sort", $db);
mysql_set_charset ("cp1251",$db); //установка кодировки
mysql_query('SET NAMES "cp1251"'); //запрос кодировки
if (!$db) echo mysql_error(); //проверка на правильность 
подключения к базе данных

 

 

Далее перейдем к запросу о марках автомобилей. Обращаю сразу внимание на переменную $page_set, так как она нам будет постоянно встречаться, для удобства я в нее занес ссылку index.php, которая открывается при сортировке. Думаю так намного будет удобнее.

 

$page_set="index.php"; //занесение страницы
$where = "";
$brendsQuery = mysql_query("select id, title from catalog_brend");
//запрос на выборку марок автомобилей
$brendsResult = mysql_fetch_array($brendsQuery);
  do
  {
    $brendsList .= "
  $brendsResult[title] / ";
    }
  while($brendsResult = mysql_fetch_array($brendsQuery));

 

Теперь мы устанавливаем параметр "сброса сортировки". Уничтожая сессию при нажатии.

 

  if (isset($_POST["filterClear"]))
{
    session_unset(); //Сессия уничтожается при нажатии
}

 

Записываем в сессию все параметры сортировки, которые указаны у нас в таблице catalog, чтобы правильно отсортировать товар. Отличие обосновывается только на первом методе сортировки, с помощью глобальной переменной $_GET, которая указана для выборки строкового параметра из таблицы catalog_brend. Остальные же параметры, сначала проверяются на существование, затем переводятся в строковой параметр и хранятся в сессии, пока не будут уничтожены.

 

if (isset($_GET["catalog_brend"])) //Проверка на существование
{
    $catalog_brend = $_GET["catalog_brend"];
    if (!empty($catalog_brend)) //Если переменная не пуста, то 
    // можно выполнять занесение в сессию и вывод в строковой
    //параметр
    {
        $_SESSION["catalog_brend"] = $catalog_brend;
    }
}


if (isset($_POST["city"]))  //Проверка на существование
{
    $city = mysql_real_escape_string(strip_tags
  ($_POST["city"]));
    if ($city != "")  //Перевод в строковой параметр и обрезка
    {
        $_SESSION["city"] = $city; //Сохранению в сессию
    }
    else
    {
        unset($_SESSION["city"]);  //Уничтожение из сессии
        unset($city);
    }
}

if (isset($_POST["tip_cuzova"]))
{
    $tip_cuzova = mysql_real_escape_string(strip_tags
  ($_POST["tip_cuzova"]));
    if ($tip_cuzova != "")
    {
        $_SESSION["tip_cuzova"] = $tip_cuzova;
    }
    else
    {
        unset($_SESSION["tip_cuzova"]);
        unset($tip_cuzova);
    }
}

if (isset($_POST["tip_dvigately"]))
{
    $tip_dvigately = mysql_real_escape_string(strip_tags
  ($_POST["tip_dvigately"]));
    if ($tip_dvigately != "")
    {
        $_SESSION["tip_dvigately"] = $tip_dvigately;
    }
    else
    {
        unset($_SESSION["tip_dvigately"]);
        unset($tip_dvigately);
    }
}

if (isset($_POST["privod"]))
{
    $privod = mysql_real_escape_string(strip_tags
  ($_POST["privod"]));
    if ($privod != "")
    {
        $_SESSION["privod"] = $privod;
    }
    else
    {
        unset($_SESSION["privod"]);
        unset($privod);
    }
}

if (isset($_POST["kpp"]))
{
    $kpp = mysql_real_escape_string(strip_tags
  ($_POST["kpp"]));
    if ($kpp != "")
    {
        $_SESSION["kpp"] = $kpp;
    }
    else
    {
        unset($_SESSION["kpp"]);
        unset($kpp);
    }
}

if (isset($_POST["cvet"]))
{
    $cvet = mysql_real_escape_string(strip_tags
  ($_POST["cvet"]));
    if ($cvet != "")
    {
        $_SESSION["cvet"] = $cvet;
    }
    else
    {
        unset($_SESSION["cvet"]);
        unset($cvet);
    }
}

if (isset($_POST["moshnostiOt"]))
{
    $moshnostiOt = mysql_real_escape_string
  (strip_tags
  ($_POST["moshnostiOt"]));
    if ($moshnostiOt != "")
    {
        $_SESSION["moshnostiOt"] = $moshnostiOt;
    }
    else
    {
        unset($_SESSION["moshnostiOt"]);
        unset($moshnostiOt);
    }
}
if (isset($_POST["moshnostiDo"]))
{
    $moshnostiDo = mysql_real_escape_string
  (strip_tags
  ($_POST["moshnostiDo"]));
    if ($moshnostiDo != "")
    {
        $_SESSION["moshnostiDo"] = $moshnostiDo;
    }
    else
    {
        unset($_SESSION["moshnostiDo"]);
        unset($moshnostiDo);
    }
}

if (isset($_POST["priceOt"]))
{
    $priceOt = mysql_real_escape_string(strip_tags
  ($_POST["priceOt"]));
    if ($priceOt != "")
    {
        $_SESSION["priceOt"] = $priceOt;
    }
    else
    {
        unset($_SESSION["priceOt"]);
        unset($priceOt);
    }
}

if (isset($_POST["priceDo"]))
{
    $priceDo = mysql_real_escape_string(strip_tags
  ($_POST["priceDo"]));
    if ($priceDo != "")
    {
        $_SESSION["priceDo"] = $priceDo;
    }
    else
    {
        unset($_SESSION["priceDo"]);
        unset($priceDo);
    }
}


if (isset($_POST["filterClear"]))
{
    session_unset();  
  //Переменные которые заносятся при уничтожении сессии
    unset($city);
    unset($tip_cuzova);
    unset($tip_dvigately);
    unset($privod);
    unset($kpp);
    unset($cvet);
    unset($moshnostiOt);
    unset($moshnostiDo);
    unset($priceOt);
    unset($priceDo);
}






/*Делаем запрос на выборку из таблиц всех полей*/
if (isset($_SESSION["catalog_brend"]))
{
    $catalog_brend = $_SESSION["catalog_brend"];
    $where = "where";
    $brendQuery = " $where catalog_brend='$catalog_brend'";
}

if (isset($_SESSION["city"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $city = $_SESSION["city"];
    $cityQuery = " $where city='$city'";
}

if (isset($_SESSION["tip_cuzova"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $tip_cuzova = $_SESSION["tip_cuzova"];
    $tip_cuzovaQuery = " $where tip_cuzova='$tip_cuzova'";
}

if (isset($_SESSION["tip_dvigately"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $tip_dvigately = $_SESSION["tip_dvigately"];
    $tip_dvigatelyQuery = " $where tip_dvigately='$tip_dvigately'";
}

if (isset($_SESSION["privod"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $privod = $_SESSION["privod"];
    $privodQuery = " $where privod='$privod'";
}

if (isset($_SESSION["kpp"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $kpp = $_SESSION["kpp"];
    $kppQuery = " $where kpp='$kpp'";
}


if (isset($_SESSION["cvet"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $cvet = $_SESSION["cvet"];
    $cvetQuery = " $where cvet='$cvet'";
}

if (isset($_SESSION["moshnostiOt"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $moshnostiOt = $_SESSION["moshnostiOt"];
    $moshnostiOtQuery = " $where moshnosti >='$moshnostiOt'";
}

if (isset($_SESSION["moshnostiDo"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $moshnostiDo = $_SESSION["moshnostiDo"];
    $moshnostiDoQuery = " $where moshnosti <='$moshnostiDo'";
}

if (isset($_SESSION["priceOt"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $priceOt = $_SESSION["priceOt"];
    $priceOtQuery = " $where price >='$priceOt'";
}

if (isset($_SESSION["priceDo"]))
{
    if (empty($where))
    {
        $where = "where";
    }
    else
    {
        $where = "and";
    }
    $priceDo = $_SESSION["priceDo"];
    $priceDoQuery = " $where price <='$priceDo'";
}

 

Реализация сортировки "по алфавиту", "по цене" - дешевые авто и дорогие.

 

/*Делаем сортировку по трем пунктам.*/
if (isset($_SESSION["sort"]))
{
    $sortQuery = $_SESSION["sort"];
}
/* 1) Сортировка по алфавиту*/
if (isset($_GET["sort"]))
{
    if ($_GET["sort"] == "default")
    {
        $sortQuery = " order by title";
        $_SESSION["sort"] = $sortQuery;
    }
/* 2) Сортировка по деневым ценам*/	
    elseif ($_GET["sort"] == "asc")
    {
        $sortQuery = " order by price asc";
        $_SESSION["sort"] = $sortQuery;
    }
/* 3) Сортировка по дорогим ценам*/	
    elseif ($_GET["sort"] == "desc")
    {
        $sortQuery = " order by price desc";
        $_SESSION["sort"] = $sortQuery;
    }
    else
    {
        $sortQuery = " order by title";
        $_SESSION["sort"] = $sortQuery;
    }
}

 

Реализуем постраничную навигацию.

 

$page = 5; //Сколько авто на странице.
$x = 0;
$v = 0;
if (isset($_GET["page"])) //Реализация строкового параметра
{
    $x = intval($_GET["page"]);
    if ($x > 0)
    {
$navigation = " .($x-1)."">Предыдущая ";
    }
    $v = $x * $page;
}

Выполняем запрос к таблице catalog и выводим все поля. В конце дописываем сортировку, указывая нужные значения при выводе. Значения сортировки записываем в переменную $navigation.

 

$contentQuery = mysql_query("select * from catalog
$brendQuery
$cityQuery
$tip_cuzovaQuery
$tip_dvigatelyQuery
$privodQuery
$kppQuery
$cvetQuery
$moshnostiOtQuery
$moshnostiDoQuery
$priceOtQuery
$priceDoQuery
$sortQuery
limit $v,5") or die(mysql_error()); // 5 товаров на странице

$countQuery = mysql_query("select count(id) from catalog
$brendQuery
$cityQuery
$tip_cuzovaQuery
$tip_dvigatelyQuery
$privodQuery
$kppQuery
$cvetQuery
$moshnostiOtQuery
$moshnostiDoQuery
$priceOtQuery
$priceDoQuery
$sortQuery
limit 5") or die(mysql_error()); // 5 товаров на странице
$countResult = mysql_result($countQuery, 0);
$count = floor(($countResult) / $page);
$a = 0; //С какой странице начинается сортировка

while ($count >= $a)
{
    $navigation .= " $a ";
    $a++;
}
if ($x < $count)
{
    $navigation .= ".($x+1)."">Следующая ";
}
while ($contentResult = mysql_fetch_assoc($contentQuery))
{
    foreach ($contentResult as $key => $value)
    {
        $contentAdd .= $key." -- ".$value."
";
    }

 

 

Выводим все автомобили и параметры.

 

$content.=
"<div>
<table class='product_table'>
<tr>
<td valign='top' colspan='3'>
<div class='product_div_name'>
<span class='product_name'>
$contentResult[title]
</span>
</div>
</td>
</tr>
<tr>
<td valign='top' width='400'>
<img src='$contentResult[img]' width='200'/>
</td>
<td valign='top' width='200'>
<label class='product_haracterisiki1'>Город: </label>
<label class='product_haracterisiki2'>$contentResult[city]</label>
<br>
<label class='product_haracterisiki1'>Тип кузова: </label>
<label class='product_haracterisiki2'>$contentResult[tip_cuzova]</label>
<br>
<label class='product_haracterisiki1'>Тип двигателя: </label>
<label class='product_haracterisiki2'>$contentResult[tip_dvigately]</label>
<br>
<label class='product_haracterisiki1'>Привод: </label>
<label class='product_haracterisiki2'>$contentResult[privod]</label><br>
</td>
<td valign='top' width='200'>
<label class='product_haracterisiki1'>КПП: </label>
<label class='product_haracterisiki2'>$contentResult[kpp]</label><br>
<label class='product_haracterisiki1'>Цвет: </label>
<label class='product_haracterisiki2'>$contentResult[cvet]</label><br>
<label class='product_haracterisiki1'>Мощность, л.с.: </label>
<label class='product_haracterisiki2'>$contentResult[moshnosti]</label>
<br>
<label class='product_haracterisiki1'>Стоимость: </label>
<label class='product_haracterisiki2'>$contentResult[price]</label><br>
</td>
</tr>
</table>
</div><br>";
unset($contentAdd);
}

 

 

Третий шаг. Вывод сортировки. Файл form.php.

 

Думаю тут ничего сложного нет, просто все параметры, которые нам нужны для сортировки, заложены именно тут. Обычный html и немного php.

 

 

<form action='<?=$page_set?>' method='post'>
<table class='sort_table'><tr><td width='350' valign='top'>
<label class='sort_label'>Город</label><br>
<select class='sort_select' name='city'>
<option class='sort_option' value=''>(любой)</option>
<option class='sort_option' value='Москва' 
<?=($city == "Москва") ? "selected" : ""; ?>>
Москва</option>
<option class='sort_option' value='Королев' 
<?=($city == "Королев") ? "selected" : ""; ?>>
Королев</option>
<option class='sort_option' value='Воронеж' 
<?=($city == "Воронеж") ? "selected" : ""; ?>>
Воронеж</option>
</select><br><br>
<label class='sort_label'>Тип кузова</label><br>
<select class='sort_select' name='tip_cuzova'>
<option class='sort_option' value=''>(любой)</option>
<option class='sort_option' value='Внедорожник' 
<?=($tip_cuzova == "Внедорожник") ? "selected" : ""; ?>>
Внедорожник</option>
<option class='sort_option' value='Купе' 
<?=($tip_cuzova == "Купе") ? "selected" : ""; ?>>
Купе</option>
<option class='sort_option' value='Седан' 
<?=($tip_cuzova == "Седан") ? "selected" : ""; ?>>
Седан</option>
<option class='sort_option' value='Хэдчбэк' 
<?=($tip_cuzova == "Хэдчбэк") ? "selected" : ""; ?>>
Хэдчбэк</option>
</select><br><br>
<label class='sort_label'>Тип двигателя</label><br>
<select class='sort_select' name='tip_dvigately'>
<option class='sort_option' value=''>(любой)</option>
<option class='sort_option' value='Бензин' 
<?=($tip_dvigately == "Бензин") ? "selected" : ""; ?>>
Бензин</option>
<option class='sort_option' value='Дизель' 
<?=($tip_dvigately == "Дизель") ? "selected" : ""; ?>>
Дизель</option>
</select><br><br>
<label class='sort_label'>Привод</label><br>
<select class='sort_select' name='privod'>
<option class='sort_option' value=''>(любой)</option>
<option class='sort_option' value='Задний' 
<?=($privod == "Задний") ? "selected" : ""; ?>>
Задний</option>
<option class='sort_option' value='Передний' 
<?=($privod == "Передний") ? "selected" : ""; ?>>
Передний</option>
<option class='sort_option' value='Полный' 
<?=($privod == "Полный") ? "selected" : ""; ?>>
Полный</option>
</select>
</td>
<td width='300' valign='top'>
<label class='sort_label'>КПП</label><br>
<select class='sort_select' name='kpp'>
<option class='sort_option' value=''>(любая)</option>
<option class='sort_option' value='Механическая' 
<?=($kpp == "Механическая") ? "selected" : ""; ?>>
Механическая</option>
<option class='sort_option' value='Автомат' 
<?=($kpp == "Автомат") ? "selected" : ""; ?>>
Автомат</option>
</select><br><br> 
<label class='sort_label'>Цвет</label><br>
<select class='sort_select' name='cvet'>
<option class='sort_option' value=''>(любой)</option>
<option class='sort_option' value='Белый' 
<?=($cvet == "Белый") ? "selected" : ""; ?>>
Белый</option>
<option class='sort_option' value='Черный' 
<?=($cvet== "Черный") ? "selected" : ""; ?>>
Черный</option>
<option class='sort_option' value='Желтый' 
<?=($cvet == "Желтый") ? "selected" : ""; ?>>
Желтый</option>
<option class='sort_option' value='Красный' 
<?=($cvet == "Красный") ? "selected" : ""; ?>>
Красный</option>
<option class='sort_option' value='Синий' 
<?=($cvet == "Синий") ? "selected" : ""; ?>>
Синий</option>
</select><br><br>
<label class='sort_label'>Мощность, л.с.:</label><br> 
<input class='sort_input' type='text' size='5' 
name='moshnostiOt'  value='<?=$moshnostiOt;?>' /> 
<label class='sort_label'>
по</label> <input class='sort_input' type='text' 
size='5' name='moshnostiDo'  value='<?=$moshnostiDo;?>'/>
<br /><br />
<label class='sort_label'>Стоимость</label><br>
<input class='sort_input' type='text' size='5'
 name='priceOt' value='<?=$priceOt;?>' /> <label 
 class='sort_label'>
по</label> <input class='sort_input' type='text' size='5' 
name='priceDo' value='<?=$priceDo;?>' /><br />
</td>
</tr>
<tr>
<td colspan='2' align='center'> <br /><br />
<input class='sort_button' type='submit' name='filterSet' 
value='Выбрать'/>
<input class='sort_button' type='submit' name='filterClear' 
value='Сбросить'/>
</td></tr></table>
</form>

 

 

Четвертый шаг. Файл index.php.

 

Для начала подключим файл function.php.

 

include("function.php");

 

Далее выводим бренды, присвоенные переменной $brendsList, затем подключаем файл form.php, там как Вы уже знаете, находится сама сортировка по параметрам, далее реализуем выборку по алфавиту и ценам, затем выводим все автомобили из таблицы catalog, занесенные в переменную $content и в последнем случае остается переменная $navigation, сама навигация.

 

<div class="sort_div" id="div_a" class='center'>

<div class="sort_brendlist">
<label class="sort_label_brend">Марка автомобиля: </label>
<?=$brendsList;?>
</div>

<div class="sort_form"><? include("form.php"); ?></div>

<div class="sort_brendlist">
  <a href="<?=$page_set?>?sort=default">По алфавиту</a>  / 
    <a href="<?=$page_set?>?sort=asc">Сначале дешевые</a>  /
    <a href="<?=$page_set?>?sort=desc">Сначала дорогие</a> 
</div>

</div>

<?=$content;?>
    
<div class="sort_div" <div id="div_a"><?=$navigation;?></div>
<br>

 

Пятый шаг. Файл стилей CSS.

 

/*Сортировка*/

.sort_brendlist
{
padding: 10px;
font-size: 14px;
}

.sort_div
{
background: #2da3bd;
border: 1px solid #60b5dd;
width: 800px;
}

.sort_form
{
background: white;
}

.sort_table
{
padding: 20px;
}

.sort_label
{
font-size: 14px;
font-weight: bold;
color: black;
}   

.sort_label_brend
{
font-size: 14px;
font-weight: bold;
color: white;
}

.sort_label_param
{
font-size: 14px;
color: white;
}

.sort_select
{
width: 200px;
margin-top: 5px;
margin-bottom: 10px;
border: 1px solid #0268b2;
color: black;
}

.sort_option
{
color: black;
}

.sort_input
{
width: 90px;
margin-top: 5px;
margin-bottom: 10px;
border: 1px solid #0268b2;
color: black;
}

.sort_button
{
background: none;
color: white;
border: 1px solid orange;
background: orange;
}


/*Вывод автомобилей*/

.product_table
{
padding-top: 30px;
}

.product_div_name
{
background: #2da3bd;
border: 1px solid #60b5dd;
width: 800px;
margin-bottom: 20px;
}

.product_name
{
color: white;
font-size: 16px;
font-weight: bold;
padding-left: 10px;
}

.product_haracterisiki1
{
font-size: 14px;
font-weight: bold;
}

.product_haracterisiki2
{
font-size: 14px;
}

/* Ссылки*/

a
{
color: white;
}

a:hover
{
color: orange;
}

 

 

Мы пошагово рассмотрели все действия, связанные с сортировкой на php и mysql. Возможно, данная сортировка немного объемна, но зато очень практична. Спасибо всем за внимание, желаю Вам удачи в реализациях своих планов!