|
|
|
| Ситуация: сайт разбит на блоки, левая часть сайта должна содержать меню навигации.
Меню навигации я написал посредством HTML и CSS.
Вот меню:
<td width="197px" align="right" valign="top">
<table width="197px" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href='view_cat.php?cat=%s' class="levmpt"></a></td>
</tr>
<tr>
<td>
<ul>
<li><a href="#">Фотография</a>
<ul>
<li><a href="#">Новичку</a></li>
<li><a href="#">Любителю</a></li>
</ul>
</li>
<li><a href="#">Фототехника</a>
<ul>
<li><a href="#">Новинки</a></li>
<li><a href="#">Настройки</a></li>
</ul>
</li>
<li><a href="#" class='brd'>Фотолитература</a></li>
</ul>
</td>
</tr>
</table>
|
Вопрос: как сделать так, чтобы каждому разделу меню была присвоена ссылка на категории из БД, при переходе по этой ссылке открывался файл view_cat.php?cat=%s. ? %s - соответствовал номеру категории из БД. | |
|
|
|
|
|
|
|
для: Fynfastik
(09.08.2010 в 14:36)
| |
view_cat.php?cat=".$output_db['id']."
| наверно так...
Ну и соответственно составьте запрос к базе на вывод id. | |
|
|
|
|
 6.8 Кб |
|
|
для: Fynfastik
(09.08.2010 в 14:36)
| | Лучше хранить все в базе... у меня к примеру так:
<?
$result2 = mysql_query("SELECT c.`id`, c.`title`, c.`text`, COUNT(d.`id`) AS count FROM `categories` AS c, `data` AS d WHERE c.`id`= d.`cat` AND c.`page` = 1 GROUP BY c.`id`");
if (!$result2)
{
echo "<strong>Запрос на выборку данных из базы не прошел.</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result2) > 0 )
{
$myrow2 = mysql_fetch_array($result2);
do
{
if($php_thoughts == $myrow2['title']){
$class_section = 'coolmenu_a';
}
else
{
$class_section = 'coolmenu';
}
printf ("<div id = $class_section ><a class = 'menu' href='lessons.php?cat=%s'><img src='images/arrow.gif' width='5' heigth='8' class='arraw' border='0'>%s <span class='stat'>(%s)</span></a></div>",$myrow2["id"],$myrow2["title"],$myrow2['count']);
}
while ($myrow2 = mysql_fetch_array($result2));
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>
|
| |
|
|
|
|
|
|
|
для: uvajs
(10.08.2010 в 15:18)
| | Что, тоже у Попова учился? :).
Брат, советую от советов других, - бери от уроков Жени 20%, не более. | |
|
|
|
|
|
|
|
для: lElectroHardl
(10.08.2010 в 16:16)
| | >Что, тоже у Попова учился? :).
>Брат, советую от советов других, - бери от уроков Жени 20%, не более.
какая разница у кого учился?
с моей стороны, его уроки очень даже хорошо и легко выучить. а вот что пишут в книгах, хрень поймет их! | |
|
|
|
|
|
|
|
для: uvajs
(10.08.2010 в 16:36)
| | да, вы правы. хорошо что он есть, иначе мы бы не увидели новых замечательных тем здесь | |
|
|
|
|
|
|
|
для: psychomc
(10.08.2010 в 16:39)
| | Как тонко! Нет правда, если не можете осилить книги - идите учитесь с учителем или вообще забейте на программирование. | |
|
|
|
|
|
|
|
для: nikita2206
(10.08.2010 в 19:09)
| | спасибо, так и сделаю ;) | |
|
|
|
|
|
|
|
для: psychomc
(10.08.2010 в 22:31)
| | Все что после воскл знака - не вам | |
|
|
|
|
|
|
|
для: nikita2206
(10.08.2010 в 23:02)
| | спасибо :) | |
|
|
|
|
|
|
|
для: uvajs
(10.08.2010 в 15:18)
| | да, у вас всё очень хорошо | |
|
|
|
|
|
|
|
для: psychomc
(10.08.2010 в 16:18)
| | >да, у вас всё очень хорошо
ничего сложного, создаешь табличку:
`id` int(2) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`meta_d` varchar(255) NOT NULL default '',
`meta_k` varchar(255) NOT NULL default '',
`text` text NOT NULL,
|
и потом вытаскиваешь через массив, пример выше | |
|
|
|
|
|
|
|
для: uvajs
(10.08.2010 в 16:39)
| | у меня не получилось создать. что-то с вашим кодом. можете мне видео-урок записать?
кстати классный пример. буду теперь всегда пользоваться и друзьям советовать! | |
|
|
|
|
|
|
|
для: psychomc
(10.08.2010 в 16:40)
| | >у меня не получилось создать. что-то с вашим кодом. можете мне видео-урок записать?
>кстати классный пример. буду теперь всегда пользоваться и друзьям советовать!
не нужно писать как у меня, там есть еще и статистика...
вот вам sql запрос:
--
-- Структура таблицы `categories`
--
CREATE TABLE `categories` (
`id` int(2) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`meta_d` varchar(255) NOT NULL default '',
`meta_k` varchar(255) NOT NULL default '',
`text` text NOT NULL,
`page` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=691 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=691 ;
--
-- Дамп данных таблицы `categories`
--
|
в Вашем случаи:
<?php $result2 = mysql_query("SELECT * FROM categories",$db);
if (!$result2)
{
echo "<strong>Запрос на выборку данных из базы не прошел.</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result2) > 0 )
{
$myrow2 = mysql_fetch_array($result2);
do
{
printf ("<div><a class = 'menu' href='view_cat.php?cat=%s'>%s</a></div>",$myrow2["id"],$myrow2["title"]);
}
while ($myrow2 = mysql_fetch_array($result2));
}
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}?>
|
Пробуй так | |
|
|
|
|
|
|
|
для: uvajs
(10.08.2010 в 17:09)
| | Попов зло!!! Ваш д..мо код можно слегкостью переписать, без лишнего.
<?
$debug = 1; // Вывод ошибок допустим настроено так.
function set_error($err,$d)
{
if($d)
{
foreach($err as $key => $value)
{
echo "Ошибка(".$key."): ".$value;
}
} else return;
}
$query = mysql_query("SELECT * FROM categories",$db);
if($query && mysql_num_rows($query) > 0) {
$cat_menu = '';
while($cat = mysql_fetch_assoc($query))
{
$cat_menu .= "<div><a class = 'menu' href='view_cat.php?cat={$cat['id']}'>{$cat['title']}</a></div>";
}
} else $err[21] = "<p><strong>Запрос на выборку данных из базы не прошел.</strong></p>";
set_error($err,$debug)
echo $cat_menu;
?>
|
| |
|
|
|
|
|
|
|
для: Usta
(10.08.2010 в 17:34)
| | тот который сверху более изящный | |
|
|
|
|
|
|
|
для: psychomc
(10.08.2010 в 17:47)
| | Интересно чем? 100 if - ов и 100 exit - ов. При возникновении ошибки вешает сайт. | |
|
|
|
|
|
|
|
для: Usta
(10.08.2010 в 17:50)
| | как чем? Попова код | |
|
|
|
|
|
|
|
для: psychomc
(10.08.2010 в 18:25)
| | Я умаляю - используйте тег <sarcasm> - зачастую вас просто не понять. | |
|
|
|
|
|
|
|
для: nikita2206
(10.08.2010 в 19:13)
| | пардон, но нет таких тегов :(
да и скучно стало.. | |
|
|
|
|
|
|
|
для: uvajs
(10.08.2010 в 17:09)
| | не работает
выдает ошибку
"Информация по запросу не может быть извлечена в таблице нет записей."
что же я забыл? | |
|
|
|
|
|
|
|
для: psychomc
(10.08.2010 в 17:47)
| | >не работает
>выдает ошибку
>"Информация по запросу не может быть извлечена в таблице нет записей."
>что же я забыл?
Вы в базу добавили хоть одну категорию? если нет, то добавьте и все будет работать. | |
|
|
|
|
|
|
|
для: uvajs
(10.08.2010 в 17:57)
| | а как это сделать? | |
|
|
|
|
|
|
|
для: psychomc
(10.08.2010 в 18:24)
| | Парень, хватит издеваться. | |
|
|
|
|
|
|
|
для: lElectroHardl
(10.08.2010 в 18:49)
| | простите :( | |
|
|
|
|
|
|
|
для: psychomc
(10.08.2010 в 22:35)
| |
<?
$result2 = mysql_query ("SELECT * FROM categories", $db);
if (!$result2)
{
echo "<p>Запрос на вывод данных не прошел. <br><strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
if (mysql_num_rows ($result2)>0)
{
$myrow2 = mysql_fetch_array ($result2);
do
{
printf
("<ul>
<li><a href='view_cat.php?cat=%s'>%s</a></li>
</ul>", $myrow2 ["id"], $myrow2 ["title"]);
}
while ($myrow2 = mysql_fetch_array ($result2));
}
else
{
echo "<p>Информация не может быть извлечена, так как записей с таким <strong>page</strong> нет</p>";
exit ();
|
с этим что-то можно сделать, чтобы получился раскрывающийся список, а не сплошной текст? css для этого есть. | |
|
|
|