Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Меню навигации
 
 автор: Fynfastik   (09.08.2010 в 14:36)   письмо автору
 
 

Ситуация: сайт разбит на блоки, левая часть сайта должна содержать меню навигации.
Меню навигации я написал посредством 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 - соответствовал номеру категории из БД.

  Ответить  
 
 автор: lElectroHardl   (09.08.2010 в 14:59)   письмо автору
 
   для: Fynfastik   (09.08.2010 в 14:36)
 

view_cat.php?cat=".$output_db['id']."
наверно так...
Ну и соответственно составьте запрос к базе на вывод id.

  Ответить  
 
 автор: uvajs   (10.08.2010 в 15:18)   письмо автору
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) > )

{
$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 &nbsp;<span class='stat'>(%s)</span></a></div>",$myrow2["id"],$myrow2["title"],$myrow2['count']);
}
while (
$myrow2 mysql_fetch_array($result2));
}
else
{
echo 
"<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit();
}
?>

  Ответить  
 
 автор: lElectroHardl   (10.08.2010 в 16:16)   письмо автору
 
   для: uvajs   (10.08.2010 в 15:18)
 

Что, тоже у Попова учился? :).
Брат, советую от советов других, - бери от уроков Жени 20%, не более.

  Ответить  
 
 автор: uvajs   (10.08.2010 в 16:36)   письмо автору
 
   для: lElectroHardl   (10.08.2010 в 16:16)
 

>Что, тоже у Попова учился? :).
>Брат, советую от советов других, - бери от уроков Жени 20%, не более.

какая разница у кого учился?

с моей стороны, его уроки очень даже хорошо и легко выучить. а вот что пишут в книгах, хрень поймет их!

  Ответить  
 
 автор: psychomc   (10.08.2010 в 16:39)   письмо автору
 
   для: uvajs   (10.08.2010 в 16:36)
 

да, вы правы. хорошо что он есть, иначе мы бы не увидели новых замечательных тем здесь

  Ответить  
 
 автор: nikita2206   (10.08.2010 в 19:09)   письмо автору
 
   для: psychomc   (10.08.2010 в 16:39)
 

Как тонко! Нет правда, если не можете осилить книги - идите учитесь с учителем или вообще забейте на программирование.

  Ответить  
 
 автор: psychomc   (10.08.2010 в 22:31)   письмо автору
 
   для: nikita2206   (10.08.2010 в 19:09)
 

спасибо, так и сделаю ;)

  Ответить  
 
 автор: nikita2206   (10.08.2010 в 23:02)   письмо автору
 
   для: psychomc   (10.08.2010 в 22:31)
 

Все что после воскл знака - не вам

  Ответить  
 
 автор: psychomc   (10.08.2010 в 23:46)   письмо автору
 
   для: nikita2206   (10.08.2010 в 23:02)
 

спасибо :)

  Ответить  
 
 автор: psychomc   (10.08.2010 в 16:18)   письмо автору
 
   для: uvajs   (10.08.2010 в 15:18)
 

да, у вас всё очень хорошо

  Ответить  
 
 автор: uvajs   (10.08.2010 в 16:39)   письмо автору
 
   для: 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,
  

и потом вытаскиваешь через массив, пример выше

  Ответить  
 
 автор: psychomc   (10.08.2010 в 16:40)   письмо автору
 
   для: uvajs   (10.08.2010 в 16:39)
 

у меня не получилось создать. что-то с вашим кодом. можете мне видео-урок записать?
кстати классный пример. буду теперь всегда пользоваться и друзьям советовать!

  Ответить  
 
 автор: uvajs   (10.08.2010 в 17:09)   письмо автору
 
   для: 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) > )

{
$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();
}
?>


Пробуй так

  Ответить  
 
 автор: Usta   (10.08.2010 в 17:34)   письмо автору
 
   для: 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;
?>

  Ответить  
 
 автор: psychomc   (10.08.2010 в 17:47)   письмо автору
 
   для: Usta   (10.08.2010 в 17:34)
 

тот который сверху более изящный

  Ответить  
 
 автор: Usta   (10.08.2010 в 17:50)   письмо автору
 
   для: psychomc   (10.08.2010 в 17:47)
 

Интересно чем? 100 if - ов и 100 exit - ов. При возникновении ошибки вешает сайт.

  Ответить  
 
 автор: psychomc   (10.08.2010 в 18:25)   письмо автору
 
   для: Usta   (10.08.2010 в 17:50)
 

как чем? Попова код

  Ответить  
 
 автор: nikita2206   (10.08.2010 в 19:13)   письмо автору
 
   для: psychomc   (10.08.2010 в 18:25)
 

Я умаляю - используйте тег <sarcasm> - зачастую вас просто не понять.

  Ответить  
 
 автор: psychomc   (10.08.2010 в 22:30)   письмо автору
 
   для: nikita2206   (10.08.2010 в 19:13)
 

пардон, но нет таких тегов :(
да и скучно стало..

  Ответить  
 
 автор: psychomc   (10.08.2010 в 17:47)   письмо автору
 
   для: uvajs   (10.08.2010 в 17:09)
 

не работает
выдает ошибку
"Информация по запросу не может быть извлечена в таблице нет записей."
что же я забыл?

  Ответить  
 
 автор: uvajs   (10.08.2010 в 17:57)   письмо автору
 
   для: psychomc   (10.08.2010 в 17:47)
 

>не работает
>выдает ошибку
>"Информация по запросу не может быть извлечена в таблице нет записей."
>что же я забыл?

Вы в базу добавили хоть одну категорию? если нет, то добавьте и все будет работать.

  Ответить  
 
 автор: psychomc   (10.08.2010 в 18:24)   письмо автору
 
   для: uvajs   (10.08.2010 в 17:57)
 

а как это сделать?

  Ответить  
 
 автор: lElectroHardl   (10.08.2010 в 18:49)   письмо автору
 
   для: psychomc   (10.08.2010 в 18:24)
 

Парень, хватит издеваться.

  Ответить  
 
 автор: psychomc   (10.08.2010 в 22:35)   письмо автору
 
   для: lElectroHardl   (10.08.2010 в 18:49)
 

простите :(

  Ответить  
 
 автор: Fynfastik   (11.08.2010 в 13:23)   письмо автору
 
   для: 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 для этого есть.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования