TigerZaka
Новичок
Выборка товаров из БД в зависимости от каталога
Есть две таблицы:
CREATE TABLE IF NOT EXISTS `catalog` (
`id_catalog` int(8) NOT NULL auto_increment,
`name` tinytext NOT NULL,
`description` tinytext NOT NULL,
`pos` smallint(3) NOT NULL default '0',
`hide` enum('show','hide') NOT NULL default 'show',
`id_parent` int(8) NOT NULL default '0',
PRIMARY KEY (`id_catalog`),
KEY `id_parent` (`id_parent`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
CREATE TABLE IF NOT EXISTS `product` (
`id_product` int(11) NOT NULL auto_increment,
`name` tinytext NOT NULL,
`description` text NOT NULL,
`id_catalog` int(8) NOT NULL default '0',
PRIMARY KEY (`id_product`),
KEY `id_catalog` (`id_catalog`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
-----------
три файла config.php (подключение к БД), index.php (список каталогов из БД), product.php(вынимает товары из БД в зависимости от выбранного каталога)
index.php
product.php
Проблема состоит в том, что каталоги переключаются без проблем, но товар к ним относящийся никак не хочет появляться. Все стопорится на этой строчке вроде
. Подскажите, где промашка, никак не могу понять ( Заранее спасибо
Есть две таблицы:
CREATE TABLE IF NOT EXISTS `catalog` (
`id_catalog` int(8) NOT NULL auto_increment,
`name` tinytext NOT NULL,
`description` tinytext NOT NULL,
`pos` smallint(3) NOT NULL default '0',
`hide` enum('show','hide') NOT NULL default 'show',
`id_parent` int(8) NOT NULL default '0',
PRIMARY KEY (`id_catalog`),
KEY `id_parent` (`id_parent`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
CREATE TABLE IF NOT EXISTS `product` (
`id_product` int(11) NOT NULL auto_increment,
`name` tinytext NOT NULL,
`description` text NOT NULL,
`id_catalog` int(8) NOT NULL default '0',
PRIMARY KEY (`id_product`),
KEY `id_catalog` (`id_catalog`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
-----------
три файла config.php (подключение к БД), index.php (список каталогов из БД), product.php(вынимает товары из БД в зависимости от выбранного каталога)
index.php
PHP:
<?
require_once("config.php");
?>
<?
if(!isset($_GET['id_parent'])) $_GET['id_parent'] = 0;
$query = "SELECT * FROM catalog WHERE id_catalog=".$_GET['id_parent'];
$ctgc = mysql_query($query);
if ($ctgc and $_GET['id_parent'] != 0)
{
$catc = mysql_fetch_array($ctgc);
echo "<h1>Каталог: ".$catc['name']."</h1><br>";
echo "<a href=index.php?id_parent=".$catc['id_parent'].">Верхний уровень</a><br>";
}
if(isset($_GET['id_parent']))
{
$query = "SELECT * FROM catalog WHERE id_parent = ".$_GET['id_parent']." ORDER BY pos";
$ctg = mysql_query($query);
if(!$ctg) puterror("Ошибка при обращении к каталогу");
echo "<table><tr>
<td>Название каталога</td>
<td>Описание</td>
</tr>";
while($cat = mysql_fetch_array($ctg))
{
echo "<tr>
<td><a href=index.php?id_parent=".$cat['id_catalog'].">".$cat['name']."</a></td>
<td>".$cat['description']."</td>
</tr>";
}
}
echo "</table>";
include "product.php";
?>
PHP:
<? if($_GET['id_parent'] !=0) {
?>
<h1>Продукция в каталоге</h1>
<?
$query = "SELECT * FROM product WHERE id_catalog =".$_GET['id_parent']." ORDER BY pos";
$prt = mysql_query($query);
if($prt) {
echo "<table><tr>
<td>Наименование товара</td>
<td>Описание</td>
</tr>";
while($ptr = mysql_fetch_array($prt))
{
echo "<tr>
<td>".$ptr['name']."</td>
<td>".$ptr['description']."</td>
</tr>";
}
} else echo "Ошибка";
?>
</table>
<?
} else echo "Это самый верхний каталог";
?>
PHP:
while($ptr = mysql_fetch_array($prt))