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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Упорядочивание данных

Сообщения:  [1-10]   [11-20] 

 
 автор: Ziq   (04.10.2005 в 07:01)   письмо автору
 
   для: cheops   (03.10.2005 в 16:22)
 

Спасибо ОГРОМНОЕ!!! Видимо тот кто сказал: "Все гениальное просто", тоже мучился с функциями :). У Вас код по размеру вдвое меньше моего. Я даже не знал, что можно так ловко. Еще раз спасибо, Вам надо памятник при жизни поставить.

   
 
 автор: cheops   (03.10.2005 в 16:22)   письмо автору
 
   для: Ziq   (03.10.2005 в 15:48)
 

Вот ваша функция
<?php
include "config.php";
//  Функция для выведения раздел любой вложенности из БД
//  Значения переменных
//  $prioritet     - позиция элемента, который сейчас проверяется
//  $id_parent     - внутри какого раздела искать 0 - самый верхний
echo "<pre>";
category(0,-1);
echo 
"</pre>";
function 
category($id_parent,$level=0)
{
  
// Устанавливаем уровень
  
$level++;

  
$query  "select * from dev_category 
             where id_parent = 
$id_parent 
             order by prioritet"
;
  
$myq = @mysql_query($query);
  if(!
$myq) exit(mysql_error());

  
// Если найдена хоть одна запись - выводим данные
  
if(mysql_num_rows($myq)>0)
  {
    while(
$fet mysql_fetch_array($myq))
    {
      
$id_category $fet['id_category'];
      
$category    $fet['category'];
      
$id_parent   $fet['id_parent'];
      
$id_status   $fet['id_status'];

      if (
$GLOBALS['category_select'] == $id_category$sele "selected";
      
$GLOBALS['a_parent'][$id_parent] = $id_parent;

      
// Выводим запрос
      
echo "<option value='$id_category$sele>".str_repeat("-",$level)."> $category</option>\n";

      
// Осуществляем рекурсивный вызов для вывода
      // подчинённых записей
      
category($id_category$level);  //  Опускаемся на уровень ниже
    
}
  }
}
?>

PS Старайтесь избегать более одного рекурсивного вызова и более 3-х вложенных друг в друга фигурных скобок - иначе вас впереди будут ждать недели отладки :)))

   
 
 автор: Ziq   (03.10.2005 в 15:48)   письмо автору
 
   для: cheops   (03.10.2005 в 14:32)
 

Объясняю. Функция предназначена для вывода структуры сайта в виде <select> т.е. так

<select name="name">
<option value="id_razd">>$name_razd</option>
<option value="id_razd">->$name_razd</option>
<option value="id_razd">->$name_razd</option>
<option value="id_razd">-->$name_razd</option>
<option value="id_razd">>$name_razd</option>
</select>

> Означает, что этот раздел находиться на самом верхнем уровне. Чем больше "-" тем ниже уровень. Может, что еще не понятно, потому что без Вашей помощи вряд ли что получиться, так как я уже несколько дней парюсь.

Заранее огромное спасибо.

   
 
 автор: cheops   (03.10.2005 в 14:32)   письмо автору
 
   для: Ziq   (02.10.2005 в 21:01)
 

Не очень понятно, что функция делает - каково её назначение?

   
 
 автор: Ziq   (02.10.2005 в 21:01)   письмо автору
 
   для: cheops   (02.10.2005 в 20:03)
 

На привязку пока не смотрите, если избавить функцию от того, чтобы она требовала уникальности поля prioritet, то все станет на свои места.

   
 
 автор: cheops   (02.10.2005 в 20:03)   письмо автору
 
   для: Ziq   (02.10.2005 в 19:39)
 

Всё равно не понимаю зачем привязка к 10 - я изменил их на 10, 20, 30 на 1, 2, 3 - всё работает...

   
 
 автор: Ziq   (02.10.2005 в 19:39)   письмо автору
 
   для: Ziq   (02.10.2005 в 15:32)
 

Может что-то непонятно в уже написанном коде?

   
 
 автор: Ziq   (02.10.2005 в 15:32)   письмо автору
 
   для: cheops   (02.10.2005 в 14:00)
 

category(0,0);

   
 
 автор: cheops   (02.10.2005 в 14:00)   письмо автору
 
   для: Ziq   (02.10.2005 в 06:56)
 

Так а с какими значениями в первый раз функцию вызывать?

   
 
 автор: Ziq   (02.10.2005 в 06:56)   письмо автору
 
   для: cheops   (01.10.2005 в 23:23)
 

Я Вам по почте переслал дамп (оригинал), не хотелось бы, чтобы он стал достоянием общественности, в целях безопасности.

Заранее огромное спасибо за помощь.

   

Сообщения:  [1-10]   [11-20] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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