|
|
|
| Подскажите пожалуйста, решена ли проблема вывода подкаталогов в клиентской части сайта, описанного в книге "PhP5. Практика создания web-сайтов"(первое издание)? Перерыл весь форум, так и не понял, где ошибка в коде. | |
|
|
|
|
|
|
|
для: Alpes
(22.06.2009 в 10:24)
| | По коду скрипта видно, где ошибка. Уже осуждалась эта тема. За неимением исходников более сказать не могу | |
|
|
|
|
|
|
|
для: mihdan
(23.06.2009 в 11:36)
| | Может кто-нибудь всё-таки подскажет? | |
|
|
|
|
|
|
|
для: Alpes
(24.06.2009 в 04:49)
| | Исходник? | |
|
|
|
|
|
|
|
для: mihdan
(24.06.2009 в 10:57)
| | <?php
// Устанавливаем соединение с базой данных
require_once("../admin/config.php");
$title="Каталог продукции";
include "../utils/top.php";
?>
<h1 class=artnamepage>Каталог продукции</h1>
<?
// Если значение параметра id_parent не установлено, следовательно,
// выбран самый верхний уровень меню
if(!isset($_GET['id_parent'])) $_GET['id_parent'] = 0;
// Если имеем дело не с корневым каталогом, то выводим ссылку на
// уровень выше и воспроизводим вышележащее меню
if ($_GET['id_parent'] != 0)
{
$catc=mysql_fetch_array($ctgc);
// Выводим ссылку для возврата в предыдущее меню
echo "<a href=index.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=index.php?id_parent=".$pmenu['id_parent']."&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=index.php?id_parent=".$_GET['id_parent']."&id_catalog=".$cat['id_catalog'].">".$cat['name']."</a><br>";
}
}
}
}
}
// Если это корневой каталог просто выводим его подкаталоги
// Выводим список подкаталогов
$query = "SELECT * FROM catalog WHERE hide='show' AND id_parent=".$_GET['id_parent']." ORDER BY pos";
$ctg = mysql_query($query);
if (!$ctg) puterror("Ошибка при обращении к каталогу1");
while($cat = mysql_fetch_array($ctg))
{
// Выводим список подкаталогов корневого каталога
echo "<a href=index.php?id_parent=".$cat['id_parent']."&id_catalog=".$cat['id_catalog'].">".$cat['name']."</a><br>";
}
// Если это не корневой каталог: выводим таблицу с товарными позициями
if($_GET['id_catalog'] != 0) include "product.php";
include "../utils/bottom.php";
?> | |
|
|
|
|
|
|
|
для: Alpes
(24.06.2009 в 13:39)
| | Каталог отображает, а подкаталоги нет, хотя в базе они есть | |
|
|
|
|
|
|
|
для: Alpes
(24.06.2009 в 13:39)
| | Так же не отображаются статьи по скриптам из этой книги. Может есть у кого рабочие скрипты? | |
|
|
|
|
|
|
|
для: Alpes
(25.06.2009 в 15:01)
| | А тебе нужны именно эти скрипты?
Поищи на сайте каталога скриптов, будет целая куча готовых работающих скриптов каталога.
А твои скрипты еще и с уязвимостью sql инъекции:
$query = "SELECT * FROM catalog WHERE hide='show' AND id_parent=".$_GET['id_parent']." ORDER BY pos";
|
| |
|
|
|