14
Ноя

Пишем скрипт Каталог товаров на Php и MySql, Часть #6, заключительная

Данная статья является заключительным материалом в цикле "Пишем скрипт Каталог товаров на PHP и MySql". В ней мы рассмотрим создание оставшихся модулей, необходимых для полноценного функционирования нашего скрипта.
Начнем мы пожалуй с кода, отвечающего за вывод отдельного товара.
Итак файл item.php:
<?
// подключаем шапку сайта
include ("head.inc.php"); 
echo "<table width=100% align=center
 border=0 cellpadding=3 cellspacing=3><tr valign=top>
<td width=25%><strong><center>Категории товаров</center></strong><br>
  <table width=100% align=center border=0
   cellpadding=3 cellspacing=3><tr valign=top><td>";

// подключаем древовидное меню
include ("menu.inc.php");

echo "</td></tr></table></td>
<td width=75%>";

echo "<table width=100% align=center 
  border=0 cellpadding=7 cellspacing=10>
    <tr valign=top>";
        echo "<td bgcolor=#EFEFEF>";
// выводим товар,
// идентификатор которого пришел
// через адресную строку
$query = mysql_query ("SELECT * FROM item 
WHERE id = '".$_GET['id_item']."'");
// если запрос прошел удачно
if ($query)
{
    // если есть товар с данным идентификатором
    if (mysql_num_rows($query))
    {
        // лепим ассоциативный массив
        $list_cat = mysql_fetch_assoc ($query);
        // выводим
        echo "<strong><center>
        ".$list_cat['title']."</center></strong><br />";    
        echo "Описание товара: ".nl2br($list_cat['description'])."<br />";
        // приводим тип валюты в человечачий вид
        if ($list_cat['money_type'] == "D") $money_type = "$";
        elseif ($list_cat['money_type'] == "E") $money_type = "&euro;";
        elseif ($list_cat['money_type'] == "G") $money_type = "гр.";
        else $money_type = "руб.";
        echo "<strong>Цена: ".$list_cat['price']." ".$money_type."</strong>";
    }
    // иначе ругаемся
    else echo "<strong><center>Нет такого товара</center></strong>";
}
echo "</td></tr></table></td></tr></table>";

// подключаем подвал сайта
include ("foot.inc.php"); 
?> 
 


Файл list_items.php, отвечающий за вывод списка товаров одной категории. Код:
<?
// подключаем шапку сайта
include ("head.inc.php"); 
echo "<table width=100% align=center
 border=0 cellpadding=3 cellspacing=3><tr valign=top>
<td width=25%><strong><center>Категории товаров</center></strong><br>
  <table width=100% align=center border=0
   cellpadding=3 cellspacing=3><tr valign=top><td>";

// подключаем древовидное меню
include ("menu.inc.php");

echo "</td></tr></table></td>
<td width=75%>";

// выводим категорию товаров,
// идентификатор которй пришел
// через адресную строку

$query = mysql_query("SELECT * FROM item as A,
 category as B
  WHERE A.id_category = B.cat_id AND
   A.id_category = ".$_GET['id_cat']."
    ORDER by A.id DESC");
// узнаем количество товаров в этой категории    
$num = mysql_num_rows ($query);
// если товары есть, то выводим
if ($num)
{
    echo "<strong><center>Количество товаров в данной категории:
     ".$num."</strong></center><br>";
    // используем ф-ию для постраничной навигации
    @$start = page_list ($_GET['page'], $num, $COUNT_SHOW_ITEMS_IN_CAT);
    // запрашиваем товары, но уже зная, с какого товара выводить,
    // сколько штук на странице,
    // и как их сортировать
    $query2 = mysql_query("SELECT * FROM item as A,
     category as B
      WHERE A.id_category = B.cat_id AND
       A.id_category = ".$_GET['id_cat']."
        ORDER by title LIMIT $start, $COUNT_SHOW_ITEMS_IN_CAT");
    echo "<table cellpadding=10 cellspacing=5 align=center>";
    // лепим массив в цикле
    while($list = mysql_fetch_assoc($query2))
    {    
        // узнаем, какую валюту печатать на странице у каждого товара
        if         ($list['money_type'] == "D") $money_type = "$";
        elseif     ($list['money_type'] == "E") $money_type = "&euro;";
        elseif     ($list['money_type'] == "G") $money_type = "гривен";
        else $money_type = "руб.";
    
        // выводим данные
        echo "<tr bgcolor=#EFEFEF valign=top><td>
        <a href=\"http://".$_SERVER['HTTP_HOST']."/cat/".$list['id_category']."/".$list['id']."/\">
        ".$list['title']."</a></td>";
        $list['description'] = substr($list['description'], 0, 100);
        echo "<td>".nl2br($list['description'])."...</td>";
        echo "<td>Цена: ".$list['price']." ".$money_type."</td>";
        echo "<td>Просмотров: ".$list['hits']."</td>";
        echo "</tr>";
    }
    echo "</table>";
    // выводим постраничную навигацию
    $path_to_page = "cat";
    @show_page_list($_GET['page'], $num, $COUNT_SHOW_ITEMS_IN_CAT, $_GET['id_cat'], $path_to_page);
}
// иначе грязно выругаемся
else echo "<strong><center>В данной категории нет товаров!</center></strong>";
echo "</td></tr></table>";
// подключаем подвал сайта
include ("foot.inc.php"); 
?> 
 


Файл menu.inc.php, который выстраивает наше древовидное меню:
<?
// функция для вывода меню из категорий
function subcategory($id, $sub)
{
    $categories = mysql_query("SELECT * FROM category 
    WHERE root_cat = $id");
    while($category = mysql_fetch_array($categories)) 
    {    
        for($i = 0; $i < $sub; $i++) 
        echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
        echo "<a href=\"http://".$_SERVER['HTTP_HOST']."/cat/".$category['cat_id']."/\">
         - ".$category['name_cat']."</a><br />";
        subcategory($category['cat_id'], $sub+1);
    }
}
// выводим меню
$categories = mysql_query("SELECT * FROM category 
WHERE root_cat = 0");
while($category = mysql_fetch_array($categories)) 
{
    $sub = 1;
    echo "<strong>
    <a href=\"http://".$_SERVER['HTTP_HOST']."/cat/".$category['cat_id']."/\">
    ".$category['name_cat']."</a></strong><br />";
    subcategory($category['cat_id'], $sub);
}
?> 
 


Вот в принципе и всё. Все необходимые файлы созданы и теперь мы можем проверить работу нашего каталога. Для этого введем в адресной строке браузера адрес http://ваш_сайт/cat/ и потестируем.

Кстати код, который получится в итоге этого цикла статей лёг в основу скрипта JOKER_vitrina 1.0 FREE, описание которого и ссылки для скачивания Вы найдете на странице http://allpublication.ru/blog/p15-novyy_besplatnyy_PHP_skript_katalog_tovarov_JOKER_vitrina_1_0_FREE.html

Ссылки на предыдущие статьи этого цикла: 1, 2, 3, 4, 5
 

Комментарии

Rss-лента комментариев к этому посту
 
Для комфортного доступа к этому сайту, в вашем браузере должен быть включен JavaScript