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

Форум MySQL

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

 

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

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

тема: Дамп массива

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-42] 

 
 автор: Eugene77   (25.07.2009 в 15:43)   письмо автору
 
   для: Trianon   (25.07.2009 в 10:56)
 

Спасибо!
Сейчас буду разбираться.

  Ответить  
 
 автор: Trianon   (25.07.2009 в 10:56)   письмо автору
 
   для: Eugene77   (25.07.2009 в 08:50)
 

<?php
    
require_once('dbconfig.php');

   function 
level($list$tree$id)
   {
       echo 
"<blockquote> "$list[$id]['name'];
       if(isset(
$tree[$id]))
         for(
$n=count($tree[$id]), $i 0$i $n$i++)
           
level($list$tree$tree[$id][$i]);
       echo 
"</blockquote>";
   }

   
$tree = array();     $list = array();

   
$query " SELECT  id, parent_id, name FROM tbl order by id";
   if((
$res=mysql_query($query)) != 0)
     while((
$row=mysql_fetch_ASSOC($res)) != 0)
     {
       
$list[$row['id']] = $row;
       list(
$id$parent_id) = array($row['id'],$row['parent_id']);
       
$tree[$parent_id][] = $id;
     }

    
level($list$tree1);
?>


<?php
    
require_once('dbconfig.php');

   function 
makearr($list$tree$id)
   {
       
$v = array();
       if(isset(
$tree[$id]))
         for(
$n=count($tree[$id]), $i 0$i $n$i++)
         {
             
$key $tree[$id][$i];
             
$v[$list[$key]['name']] = makearr($list$tree$key);
         }
       return 
$v;
   }

   
$tree = array();     $list = array();

   
$query " SELECT  id, parent_id, name FROM tbl order by id";
   if((
$res=mysql_query($query)) != 0)
     while((
$row=mysql_fetch_ASSOC($res)) != 0)
     {
       
$list[$row['id']] = $row;
       list(
$id$parent_id) = array($row['id'],$row['parent_id']);
       
$tree[$parent_id][] = $id;
     }

    
$arr makearr($list$tree1);    unset($list);     unset($tree); 
    echo 
"<pre>";     print_r($arr);     echo "</pre>";

?>

  Ответить  
 
 автор: Eugene77   (25.07.2009 в 08:50)   письмо автору
 
   для: Trianon   (24.07.2009 в 23:43)
 

>Вот. Смотрите внимательно.
>http://softtime.ru/forum/read.php?id_forum=3&id_theme=13924
>

Да, признаю, что для рекурсивного обхода дерева, массив совсем не обязательно делать древовидным. Ваше решение проще. А моя идея соответствия структуры данных и структуры массива должна была для вас выглядеть надуманной. Просто я не такой опытный программист...

>Простите, то, что Вы так считаете, конечно, позволяет Вам на них не отвечать.
>Но тогда какой смысл ждать ответ от меня? Я-то их пустыми не считаю.
>

Я это понимаю. Поэтому отвечаю, но предупреждаю вас, что обсуждение заходит в ту область, которая для меня значения не имеет.

>Так трудно нарисовать

INSERT INTO tbl (id, parent_id, name) VALUES 
(1, 0, 'Растения'),
(2, 1, 'Деревья'),
(3, 2, 'Дубы'),
(4, 1, 'Кусты'),
(5, 4, 'Малина'),
(6, 5, 'Малина садовая'),
(7, 5, 'Малина домашняя')

>
>Я вот в упор не понимаю, почему это должен делать я, в то время, когда потребность в знаниях испытываете Вы!

Ну, это да. Если нарисовать - это сэкономит минутку вашего времени. Буду приводить образец готового дампа.

Теперь вопрос, получается, потерял практическое значение для меня.
Но осталось желание посмотреть образец качественно написанного кода.
Возможно ли создать именно древовидный массив без такого громоздкого кода как сочинил я? Мне бы очень хотелось взглянуть как вы там будете передавать ссылки!

Спасибо за во многом справедливую критику!

  Ответить  
 
 автор: Trianon   (24.07.2009 в 23:43)   письмо автору
 
   для: Eugene77   (24.07.2009 в 16:14)
 

>Меня самого удивило, что то что вы предложили вы считаете древовидной структурой массива (речь идёт о теме на которую вы ссылались).

Вот. Смотрите внимательно.
http://softtime.ru/forum/read.php?id_forum=3&id_theme=13924

>
>>Теперь Вы пишете, что Вас оказывается не создание массива интересует, а выбор структуры таблицы, хотя их всего-то раз, два и три. И все детально описаны.
>

>Про выбор структуры таблицы я создавал отдельную тему, но так ничего и не взял из неё.
>Ну, и остановился на самом простом. Именно поэтому я сделал вывод, что со структурой таблицы разночтений не будет и именно поэтому считаю ваши уточняющие вопросы пустыми.

Простите, то, что Вы так считаете, конечно, позволяет Вам на них не отвечать.
Но тогда какой смысл ждать ответ от меня? Я-то их пустыми не считаю.


>>Вы смерти моей хотите чтоли?
>

>Я не могу ещё более конкретизировать вопрос имея перед собой свою задачу.
>Какой мне нужен массив? Да любой,
Да Вы его уже привели.
Так трудно нарисовать
INSERT INTO tbl (id, parent_id, name) VALUES 
(1, 0, 'Растения'),
(2, 1, 'Деревья'),
(3, 2, 'Дубы'),
(и т.д.) ?!

Я вот в упор не понимаю, почему это должен делать я, в то время, когда потребность в знаниях испытываете Вы!

  Ответить  
 
 автор: Eugene77   (24.07.2009 в 16:14)   письмо автору
 
   для: Trianon   (24.07.2009 в 10:08)
 

>Вы задали базовый вопрос- как таблицу перегнать в массив. Быстро и аккуратно.
>Я удивился вопросу (вроде не Ваш уровень) , но показал - как.
>Вместо того, чтобы , как Вы пишете, догадаться, Вы стали юлить и сетовать на то, де, что вот массив нужен не такой, а другой.

Меня самого удивило, что то что вы предложили вы считаете древовидной структурой массива (речь идёт о теме на которую вы ссылались).

>Теперь Вы пишете, что Вас оказывается не создание массива интересует, а выбор структуры таблицы, хотя их всего-то раз, два и три. И все детально описаны.

Про выбор структуры таблицы я создавал отдельную тему, но так ничего и не взял из неё.
Ну, и остановился на самом простом. Именно поэтому я сделал вывод, что со структурой таблицы разночтений не будет и именно поэтому считаю ваши уточняющие вопросы пустыми.

>Вы смерти моей хотите чтоли?

Я не могу ещё более конкретизировать вопрос имея перед собой свою задачу.
Какой мне нужен массив? Да любой, но чтобы его можно было обходить ветку за веткой. Только и всего. А какая структура в РНР этому соответствует? Вы много знаете? Я - только одну, если не считать отличия в концах веточек, которые вы назвали ортогональностью. Но любые отличия на кончиках массива для меня значения не имеют. Да и вообще для практики их значение будет минимально. Так что мне кажется, что несмотря на краткость формулировки, задача вполне определена (мы говорим о теме, на которую вы сослались). То есть любое решение, предложенное с вашей стороны, удовлетворит мой интерес.

Тут два варинта: либо вы не хотите это замечать упираясь в "педагогические соображения",
либо я что-то глубоко не понимаю в древовидной структуре. Ну, тогда - поясните, какие тут могут быть ещё варианты, мною не замеченные.

  Ответить  
 
 автор: Trianon   (24.07.2009 в 10:15)   письмо автору
 
   для: Eugene77   (24.07.2009 в 10:04)
 

Из всего этого ясно другое. А именно, что Вас что-то интересует, но Вы не пытаетесь приложить даже минимума усилий, чтобы понятно объяснить, что именно.
Этот подход ("а чо думать-то? Спрошу - а там разберутся") виден во всех ваших постах.
И поэтому, не смотря на Ваш достаточно высокий , по сравнению с местным большинством, уровень, учить Вас чему-либо не тянет никогда.

  Ответить  
 
 автор: Trianon   (24.07.2009 в 10:08)   письмо автору
 
   для: Eugene77   (24.07.2009 в 09:28)
 

Вы задали базовый вопрос- как таблицу перегнать в массив. Быстро и аккуратно.
Я удивился вопросу (вроде не Ваш уровень) , но показал - как.
Вместо того, чтобы , как Вы пишете, догадаться, Вы стали юлить и сетовать на то, де, что вот массив нужен не такой, а другой.
Теперь Вы пишете, что Вас оказывается не создание массива интересует, а выбор структуры таблицы, хотя их всего-то раз, два и три. И все детально описаны.
Вы смерти моей хотите чтоли?

  Ответить  
 
 автор: Eugene77   (24.07.2009 в 10:04)   письмо автору
 
   для: Trianon   (24.07.2009 в 09:56)
 

Из всего этого ясно, что меня интересует любой разумный метод работы с иерархией,
а вы либо не знаете, либо не хотите предложить ни одного.
(Я не говорю о избыточных структурах таблиц. Тут ссылку на них уже давали.)
В принципе, я и предполагал, что этим дело закончится.

  Ответить  
 
 автор: Trianon   (24.07.2009 в 09:56)   письмо автору
 
   для: Eugene77   (24.07.2009 в 09:28)
 

Вы привели одну структуру (23.07.2009 в 09:50). Я - другую (23.07.2009 в 11:17) .
Потом Вы пишете, что ошиблись, и что работаете с "именно такой" структурой (23.07.2009 в 12:24), не уточнив, $лять, с какой именно.
Но подтверждаете, что тоже считаете их разными (23.07.2009 в 12:26) .
На мой уточняющий вопрос - с какой же именно структурой (23.07.2009 в 12:28) Вы работаете, Вы отвечаете - да! (24.07.2009 в 09:28)

При всей абсурдности разговора, в нем остается одно более менее вменяемое место:
Мы говорим об разных структурах массива, но одной методике хранения данных в таблице.
И о соответствии одного другому.

и тут я читаю (24.07.2009 в 08:48) где внезапно оказываются две таблицы.

Идите-ка Вы в жопу....

  Ответить  
 
 автор: Eugene77   (24.07.2009 в 09:28)   письмо автору
 
   для: Trianon   (23.07.2009 в 12:28)
 

>Именно какой?
Да.

Мне кажется, что вы напрасно задаёте так много уточняющих вопросов:
Если вы знаете другую более удобную неизбыточную структуру таблицы для хранения данных древовидной структуры, то давно бы её привели.
Если ВЫ такой таблицы не знаете, то почему возникают сомнения что мы говорим о разном?
Если предположить, что я не догадался до этой структуры, то я "догадаюсь" о ней по вашему ответу.

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]   [31-40]  [41-42] 

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

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