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

Форум PHP

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

 

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

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

тема: помогите плис сформировать массив
 
 автор: aibolit   (15.07.2008 в 00:16)   письмо автору
 
 

Здраствуйте.
есть функция которая формирует вывод каталога из 2х баз и передает их в шаблон,
точнее загоняет все в массив, а потом массив передается в шаблон.


<?
function displ_all_catalog ($id,$title,$nom,$catalog)
{
  
$query mysql_query("SELECT * FROM group WHERE code = '$id'");
  
$catalog=array();
  if (
mysql_num_rows($query) > 0)
  {
    
$i 0;
    while(
$fetch mysql_fetch_array($query))
    {
      if (
$fetch['activ']==="1")
      {
        
$catalog[]=array("<a href=catalog.php?action=group&gr=".$fetch['id'].">".str_repeat("&gt;",$nom).$fetch['title']."</a><br>");
        
$i++;
        
displ_all_catalog ($fetch['id'],$title."",$nom+1,$catalog);
      }
    }
  }
  else
  {
       
$query mysql_query("SELECT * FROM catalog WHERE id_gr = ".$id."");
    while (
$fetch mysql_fetch_array($query))
    {
      
$catalog[]=array("<a href=catalog.php?action=item&nom=".$fetch['id'].">".str_repeat(".",$level+1).$fetch["title"]." | ".$fetch["model"]." | ".$fetch["price"]." | ".$fetch["val"]."</a><br>");
    }
  }
  return (
$catalog);
}
?>

функция загоняет в массив данные по группам, иненно по группе к которой обратились и выводит все подргуппы в группе и все товары в этой группе.

нужно развернуть весь каталог, либо при обращении к группе развернуть все подгруппы в ней и все товары в самой группе и подгруппах,

вложенность не ограничена.

если простовыводить таким способом :

<?
function displ_all_catalog ($id,$title,$nom)
{
  
$query mysql_query("SELECT * FROM group WHERE code = '$id'");
  if (
mysql_num_rows($query) > 0)
  {
    
$i 0;
    while(
$fetch mysql_fetch_array($query))
    {
      if (
$fetch['activ']==="1")
      {
        echo 
"<a href=catalog.php?action=group&gr=".$fetch['id'].">".str_repeat("&gt;",$nom).$fetch['title']."</a><br>";
        
$i++;
        
displ_all_catalog ($fetch['id'],$title."",$nom+1);
      }
    }
  }
  else
  {
       
$query mysql_query("SELECT * FROM catalog WHERE id_gr = ".$id."");
    while (
$fetch mysql_fetch_array($query))
    {
      echo 
"<a href=catalog.php?action=item&nom=".$fetch['id'].">".str_repeat(".",$level+1).$fetch["title"]." | ".$fetch["model"]." | ".$fetch["price"]." | ".$fetch["val"]."</a><br>";
    }
  }
}
?>

то все разворачивается, но возникает проблема передачи в шаблон.

помогите плис, а то сам уже весь моск свернул.
Заранее благодарен.

   
 
 автор: Trianon   (15.07.2008 в 01:15)   письмо автору
 
   для: aibolit   (15.07.2008 в 00:16)
 

странно, что у Вас рекурсивный вызов не добавляет результат в массив:
$catalog[]=displ_all_catalog ($fetch['id'],$title."",$nom+1,$catalog);

   
Rambler's Top100
вверх

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