|
|
|
|
|
для: Ксения_954
(02.08.2007 в 22:52)
| | За что? )) | |
|
|
|
|
|
|
|
для: sim5
(02.08.2007 в 20:36)
| | спасибо Вам снова!... | |
|
|
|
|
|
|
|
для: Ксения_954
(02.08.2007 в 19:46)
| | А зачем все в куче? Если у вас есть уровень выше, значит можно перейти на него:
<a href=shop.php?id_parent=id_parent>Верхний уровень</a>
Зачем, нужен в этой ссылке id_catalog? По нему вы попадаете на соответсвующий каталог, каталог, который и пренадлежит этому "верхнему" уровню. А в запросе к каталогу только:
<a href=shop.php?id_catalog=id_catalog>Чего-то там</a>
А в каталоге уже только:
<a href=shop.php?id_product=id_product>Он самый</a> | |
|
|
|
|
|
|
|
для: cheops
(02.08.2007 в 09:58)
| | ошибку не выдает, спасибо.
Но, нажимая на ссылку верхний уровень, ничего не происходит, остается на той же странице. | |
|
|
|
|
|
|
|
для: Ксения_954
(02.08.2007 в 08:42)
| | Исправьте строку
<?php
echo "<a href=shop.php?id_parent=".$_GET['id_parent'].">Верхний уровень</a></p>";
?>
|
на
<?php
echo "<a href=shop.php?id_parent=".$_GET['id_parent']."&id_catalog=".$_GET['id_catalog'].">Верхний уровень</a></p>";
?>
|
| |
|
|
|
|
|
|
| Здравствуйте!
Я сделала каталог продукции, который описан в книге "Php5 Практика создания веб-сайтов".
Но столкнулась с проблемой.
Посмотрите, пожалуйста.
shop.php
<?php
// Устанавливаем соединение с базой данных
require_once("config.php");
?>
<?
// Если значение параметра id_parent не установлено, следовательно,
// выбран самый верхний уровень меню
if(!isset($_GET['id_parent'])) $_GET['id_parent'] = 0;
// Если имеем дело не с корневым каталогом, то выводим ссылку на
// уровень выше и воспроизводим вышележащее меню
if ($_GET['id_parent'] != 0)
{
// Выводим ссылку для возврата в предыдущее меню
echo "<a href=shop.php?id_parent=".$_GET['id_parent'].">Верхний уровень</a></p>";
// Воспроизводим вышележащее меню
$query = "SELECT * FROM catalog
WHERE hide='show' AND id_parent=".$_GET['id_parent'];
$prev = mysql_query($query);
if(!$prev) puterror("Ошибка при обращении к каталогу");
// Выводим список каталогов
while($pmenu = mysql_fetch_array($prev))
{
echo "<a href=shop.php?id_parent=".$pmenu['id_catalog']."&id_catalog=".$pmenu['id_catalog'].">".$pmenu['name']."</a><br>";
// Если вышележащий каталог совпадает с текущим, и у него имеются
// подкаталоги, то выводим их
if($_GET['id_parent'] == $pmenu['id_catalog'])
{
// Формируем и осуществляем SQL-запрос, извлекающий подкаталоги
// текущего каталога
$query = "SELECT * FROM catalog
WHERE hide='show' AND id_parent=".$_GET['id_parent']."
ORDER BY pos";
$ctg = mysql_query($query);
if (!$ctg) puterror("Ошибка при обращении к каталогу");
// Если SQL-запрос вернул больше одной строки – выводим
// подкаталоги
if(mysql_num_rows($ctg)>0)
{
while($cat = mysql_fetch_array($ctg))
{
// Выводим список каталогов
echo "<a href=shop.php?id_parent=".$_GET['id_parent']."&id_catalog=".$cat['id_catalog'].">".$cat['name']."</a><br>";
}
}
}
}
}
// Если это корневой каталог просто выводим его подкаталоги
else
{
// Выводим список подкаталогов
$query = "SELECT * FROM catalog WHERE hide='show' AND id_parent=".$_GET['id_parent']." ORDER BY pos";
$ctg = mysql_query($query);
if (!$ctg) puterror("Ошибка при обращении к каталогу11");
while($cat = mysql_fetch_array($ctg))
{
// Выводим список подкаталогов корневого каталога
echo "<a href=shop.php?id_parent=".$cat['id_catalog']."&id_catalog=".$cat['id_catalog'].">".$cat['name']."</a><br>";
}
}
// Если это не корневой каталог: выводим таблицу с товарными позициями
if($_GET['id_parent'] != 0) include "product11.php";
?>
|
product11.php
<?php
// Выводим таблицу с товарными позициями
// Формируем ассоциативный массив, где в качестве ключей выступают,
// параметры, передаваемые в строке запроса, а в качестве значений,
// имена полей в таблице product
$order = array();
$order['vid_order'] = "vid";
$order['marka_order'] = "marka";
$order['price_order'] = "price";
$order['strana_order'] = "strana";
$order['note_order'] = "note";
$order['photo_order'] = "photo";
$order['firma_order'] = "firma";
$order['addressorder'] = "address";
$strtmp = "pos";
// Если через параметр строки запроса задана прямая или обратная
// сортировка по одному из полей таблицы order изменяем значение
// временной переменной $strtmp
foreach($order as $parametr => $field)
{
if(isset($_GET["$parametr"]))
{
if($_GET["$parametr"] == "up")
{
$_GET["$parametr"] = "down";
$strtmp = $field;
}
else
{
$_GET["$parametr"] = "up";
$strtmp = "$field DESC";
}
}
else $_GET["$parametr"] = "up";
}
// Выбираем из таблицы product
$query = "SELECT * FROM product
WHERE id_catalog=".$_GET['id_catalog']."
ORDER BY $strtmp";
$prt = mysql_query($query);
if(!$prt) puterror("Ошибка при запросе к таблице товаров");
// количество рядов в наборе должно быть больше нуля
if (mysql_num_rows($prt)>0)
{
$href = "shop.php?id_parent=".$_GET['id_parent']."&id_catalog=".$_GET['id_catalog'];
?>
<table class="table" border="1" cellpadding="3" cellspacing="0" width="100%" bordercolordark="white" bordercolorlight="silver">
<tr class="zagtrtable" align="center">
<td><a href=<? echo $href."&vid_order=".$_GET['vid_o_order']; ?>>Вид</a></td>
<td><a href=<? echo $href."&marka_order=".$_GET['marka_order']; ?>>Марка</a></td>
<td><a href=<? echo $href."&price_order=".$_GET['price_order']; ?>>Цена</a></td>
<td><a href=<? echo $href."&strana_order=".$_GET['strana_order']; ?>>Страна
<td><a href=<? echo $href."¬e_order=".$_GET['note_order']; ?>>Описание
<td><a href=<? echo $href."&photo_order=".$_GET['photo_order']; ?>>Фото</a></td>
<td><a href=<? echo $href."&firma_order=".$_GET['firma_order']; ?>>Предприятие</a></td>
<td><a href=<? echo $href."&addressorder=".$_GET['addressorder']; ?>>Информация о предприятии</a></td>
</tr>
<?
while($par = mysql_fetch_array($prt))
// Выводим строку таблицы
echo "<tr>
<td>".$par['vid']."</td>
<td>".$par['marka']."</td>
<td>".$par['price']."</td>
<td>".$par['strana']."</td>
<td>".$par['note']."</td>
<td>".$par['photo']."</td>
<td>".$par['firma']."</td>
<td>".$par['address']."$tmppict</td>
</tr>";
}
?>
</table>
|
При нажатии на ссылку "Верхний уровень", выходит ошибка "Ошибка при запросе к таблице товаров". Помогите пожалуйста, в чем тут может быть проблема. | |
|
|
|
|