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

Форум PHP

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

 

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

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

тема: Категории - Подкатегории - Подподкатегории
 
 автор: divine266   (29.11.2009 в 14:48)   письмо автору
 
 

Здраствуйте, у мегя такая проблема, у мя есть таблица categories в ней содержится id, title с нее в меню у меня выводятся категории, и таблица data в ней содержится id, cat, title, text, когда кликаю по категориям в меню выводятся статьи с таблицы data, как сделать чтоб при клике по категории в меню выводились подкатегории деревом вместе с подподкатегориями(не в мнею а на странице)а их подкатегорий и подподподкатегорий статьи из таблицы data

  Ответить  
 
 автор: DEM   (29.11.2009 в 14:49)   письмо автору
 
   для: divine266   (29.11.2009 в 14:48)
 

Добавте в таблицу с категориями поле podcat, если равна 0 - основная категория, иначе указывается ID категории к которой относится эта подкатегория.

  Ответить  
 
 автор: divine266   (29.11.2009 в 14:55)   письмо автору
 
   для: DEM   (29.11.2009 в 14:49)
 

А как это вывести на страницу? можно более подробо пожалкйста, буду очень благодарен

  Ответить  
 
 автор: DEM   (29.11.2009 в 16:22)   письмо автору
 
   для: divine266   (29.11.2009 в 14:48)
 


<?php
$query 
mysql_query("SELECT * FROM `category` WHERE `podcat`='".$_GET['catid']."'");
while(
$a mysql_fetch_array($query))
{
  echo 
"Тут выводим данные о подкатегориях";
}
$query mysql_query("SELECT * FROM `data` WHERE `cat`='".$_GET['catid']."'");
while(
$a mysql_fetch_array($query))
{
  echo 
"Тут выводим данные о статьях";
}

?>


Как-то так... Скрее всего можно сделать это всё через один SQL-запрос, но сейчас голова не работает думать, хотя вроде не сложно сделать...

  Ответить  
 
 автор: tvv123456   (29.11.2009 в 16:37)   письмо автору
 
   для: DEM   (29.11.2009 в 16:22)
 



<p> 
<?php  
// дальше идут подтемы(это только кусок кода) 
$result=mysql_query("select * from cena where cat in (1,2,3) order by cat",$db); 
$cat=0
while(
$row=mysql_fetch_assoc($result)){ 
      if(
$cat!=$row['cat']){ 
           if(
$cat!=0) echo '</p><p>'
           
$cat=$row['cat']; 
           echo
'<font size="+1">Тема '.$cat.'</font><br />'
      } 
      echo
'<font style="margin-left:40px;"><input name="diza" type="radio" value="'.$row['cena'].'" />'$row['name'].'</font><br />'

?> 
</p>  



Вот здесь это упоминалось
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=68314&page=1

  Ответить  
 
 автор: divine266   (29.11.2009 в 16:43)   письмо автору
 
   для: DEM   (29.11.2009 в 16:22)
 

Это код который у меня в меню
<?
$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 class='LeftMenu'><li><a href=nav.php?cat=%s>%s</a></li></ul>",$myrow2["id"],$myrow2["title"]);

}
while (
$myrow2 mysql_fetch_array($result2));

}

else 
{
echo 
"<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit ();
}
?>


а это то что выводится при клике по категории

<?
$result 
mysql_query ("SELECT id,title,description,date,mini_img,view FROM data WHERE cat='$cat'"$db);

if (!
$result
{
echo 
"<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору!  <br> <strong>Код ошибки:</strong> </p>";
exit(
mysql_error());
}

if (
mysql_num_rows($result) > 0)
{
$myrow mysql_fetch_array($result);

do
{

printf ("<table class='post' align='center'>

<tr>
<td class='post_title'>
<p class='post_name'><a href='adds.php?id=%s'>%s</a></p>
<div class='data'>Добавлено: %s</div>
</tr>
<tr>
<td><img class='img_cat' align='left' src='%s'><p class='text_cat'>%s</p></td>
</tr>
<tr>
<td><div class='view'>Просмотров: %s</div></td>
</tr>
</table><br><br>"
,$myrow["id"],$myrow["title"],$myrow["date"],$myrow["mini_img"],$myrow["description"],$myrow["view"]);
}
while (
$myrow mysql_fetch_array($result));

}



else 
{
echo 
"<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
exit ();
}

?></p>

чет не так и непонял куда здесь впихнуть подкатегории

  Ответить  
 
 автор: PhMaster   (02.12.2009 в 14:33)   письмо автору
 
   для: divine266   (29.11.2009 в 14:48)
 

Создайте табличку category с полями id; parent_id; name
И выводите категории и подкатегории одним рекурсивным запросом
select * from category where parent_id=$id_parent;

  Ответить  
 
 автор: Jackkum   (20.12.2009 в 17:12)   письмо автору
 
   для: divine266   (29.11.2009 в 14:48)
 

<?
    
function getCategoryes$parent=0$i=)
    {
        
        
//$db = new CDB();
        
        
$query "select * from `categoryes` where `parent` = '".$parent."'";
        
        
//$db->setQuery( $query );
        //$result = $db->getArrayResult();
        
        
$r = @mysql_query($query);
        
$result = @mysql_fetch_assoc($r);
        
        
        foreach( 
$result as $row )
        {
            
            
$z $i+1;
            echo 
'<a';
            echo 
' onclick="(document.getElementById(\'div'.$row['id'].'\').style.display == \'none\' ? document.getElementById(\'div'.$row['id'].'\').style.display = \'block\' : document.getElementById(\'div'.$row['id'].'\').style.display = \'none\' )"';
            
//echo ' href="?category_id='.$row['id'].'"';
            
echo '>'.$row['category_name'].'</a><br />';
            echo 
'<div id="div'.$row['id'].'" style="display:none; padding-left:'.( (int)( $z.'0' ) ).'px;">';
            
getCategoryes$row['id'], $z );
            echo 
'</div>';
            
        }
        
    }
?>

  Ответить  
 
 автор: Евгений-php   (10.08.2012 в 16:22)   письмо автору
 
   для: divine266   (29.11.2009 в 14:48)
 

Здоров!

Значит так: с таблицами данных сам разберешься!
А вот код который будет выводить в меню, менюшку с категориями и под категориями!
Однако если не калымиш в php, то извини разжевать тебе не смогу!

     <ul>
<?
do {
$title_cat $myrow_categories['title'];
$title_id $myrow_categories['id'];
echo <<<text
       <li><a>$title_cat</a>
         <ul>\n
text;
$result_subcategories mysql_query("SELECT * FROM subcategories WHERE cat=$title_id",$db);
if (!
$result_subcategories) { $mysql_error mysql_error(); exit("$error_result<br /><br /><strong>Код ошибки: </strong>$mysql_error</div>"); }
if (
mysql_num_rows($result_subcategories) > 0) { $myrow_subcategories mysql_fetch_array($result_subcategories); } else { exit("$empty_result"); }
do {
printf ("           <li><a href='#'>%s</a></li>\n",$myrow_subcategories['title']);
} while (
$myrow_subcategories mysql_fetch_array($result_subcategories));
echo <<<text
         </ul>
       </li>\n
text;
} while (
$myrow_categories mysql_fetch_array($result_categories));
?>
     </ul>

  Ответить  
 
 автор: Valick   (10.08.2012 в 18:19)   письмо автору
 
   для: Евгений-php   (10.08.2012 в 16:22)
 

Взрыв из прошлого...

  Ответить  
 
 автор: confirm   (10.08.2012 в 19:32)   письмо автору
 
   для: Valick   (10.08.2012 в 18:19)
 

И код написан по правилам древнегреческих манускриптов, но какая концовка: "Однако если не калымиш в php, то извини разжевать тебе не смогу!" )

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

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