Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Рекурсивное создание массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: из Mysql
Kubert
Отправлено: 22 Августа, 2011 - 17:58:18
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




Не могу найти функцию по созданию массива из mysql поделитесь!!!
Идея такая:
id | pid | name
1 | 0 | Категория 1
2 | 0 | Категория 2
3 | 1 | Категория 1.1
4 | 1 | Категория 1.2
5 | 1 | Категория 1.3
6 | 2 | Категория 2.1
7 | 3 | Категория 1.1.1
 
 Top
EuGen Администратор
Отправлено: 23 Августа, 2011 - 09:06:39
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Нет такой функции, создавайте собственную в соответствии с Вашей структурой.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 23 Августа, 2011 - 09:25:45
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




 
 Top
PATCH
Отправлено: 23 Августа, 2011 - 09:33:08
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


Помог: 22 раз(а)




хм а разве mysql_fetch_array это не массив?)
 
 Top
EuGen Администратор
Отправлено: 23 Августа, 2011 - 09:35:18
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Kubert пишет:
Рекурсивное создание массива


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Kubert
Отправлено: 23 Августа, 2011 - 09:53:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




EuGen пишет:
Нет такой функции, создавайте собственную в соответствии с Вашей структурой.

Я понимаю, что это пользовательская функция! Посмею предположить рекурсивная... В этом то мне и нужна помощь...
 
 Top
illy
Отправлено: 23 Августа, 2011 - 10:19:10
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




Так что ли?

[0][1]
[0][2]
[1][1][1]
[1][1][2]
[1][1][3]
[2][2][1]
[3][1][1][1]


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
Kubert
Отправлено: 23 Августа, 2011 - 10:26:47
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




вот так:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $a_tree=array(
  3.   array('k_item' =>1,'s_name' =>'1','a_tree' => array(
  4.     array('k_item' =>2,'s_name' =>'1.1','a_tree' => array(
  5.       array('k_item' =>3,'s_name' =>'1.1.1','a_tree' => array()),
  6.       array('k_item' =>4,'s_name' =>'1.1.2','a_tree' => array()),
  7.       array('k_item' =>5,'s_name' =>'1.1.3','a_tree' => array(
  8.         array('k_item' =>6,'s_name' =>'1.1.3.1','a_tree' => array())
  9.       )),
  10.     )),
  11.     array('k_item' =>7,'s_name' =>'1.2','a_tree' => array()),
  12.     array('k_item' =>8,'s_name' =>'1.3','a_tree' => array(
  13.       array('k_item' =>9,'s_name' =>'1.3.1','a_tree' => array()),
  14.       array('k_item' =>10,'s_name' =>'1.3.2','a_tree' => array())
  15.     )),
  16.     array('k_item' =>11,'s_name' =>'1.4','a_tree' => array(
  17.       array('k_item' =>12,'s_name' =>'1.4.1','a_tree' => array())
  18.     )),
  19.   )),
  20.   array('k_item' =>13,'s_name' =>'2','a_tree' => array()),
  21.   array('k_item' =>14,'s_name' =>'3','a_tree' => array(
  22.     array('k_item' =>15,'s_name' =>'3.1','a_tree' => array())
  23.   ))
  24. );
  25.  

(Добавление)
помойму получилось... вот:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. function mym($i){
  3.         $res = mysql_query("SELECT * FROM category WHERE pid='$i'");
  4.         $topmenu = mysql_fetch_array($res);
  5.         if(isset($topmenu['id'])){
  6.                 do{
  7.                         echo $topmenu['name'].'<br>';
  8.                         mym($topmenu['id']);
  9.                 }while($topmenu = mysql_fetch_array($res));
  10.         }
  11.         return $i;
  12. }
  13.  
  14. mym(0);
  15.  

(Добавление)
опять запутался....
как теперь в массив внести все это безобразие, а потом еще и вынести его из функции...
 
 Top
LIME
Отправлено: 23 Августа, 2011 - 10:44:26
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Kubert а чем не устроила ф-ция приведенная выше?
 
 Top
Kubert
Отправлено: 23 Августа, 2011 - 10:48:34
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




LIME пишет:
Kubert а чем не устроила ф-ция приведенная выше?


Я ее не совсем понял...
Можешь на примере объяснить?
 
 Top
LIME
Отправлено: 23 Августа, 2011 - 10:50:59
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Kubert возвращает готовый массив из записей бд
(Добавление)
сделай вывод и поймешь
 
 Top
Kubert
Отправлено: 23 Августа, 2011 - 11:01:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




LIME
Смотри что у меня получается...

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $link = mysqli_connect("localhost", "root", "webmaster", "mydemo");
  3. $query = "SELECT id,pid,name FROM category";
  4.  
  5. if ($result = mysqli_query($link, $query)) {
  6.         $finfo = mysqli_fetch_fields($result);
  7.         foreach ($finfo as $val){
  8.                 printf("id:  %s\n", $val->id);
  9.                 printf("pid:  %s\n", $val->pid);
  10.                 printf("name:  %s\n", $val->name);
  11.         }
  12.         mysqli_free_result($result);
  13. }              
  14.  


На выходе вижу вот это:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. id:  
  3. pid:  
  4. name:  id
  5. id:  
  6. pid:  
  7. name:  pid
  8. id:  
  9. pid:  
  10. name:  name
  11.  
 
 Top
LIME
Отправлено: 23 Августа, 2011 - 11:08:30
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




сделаем проще
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  $link = mysqli_connect("localhost", "root", "webmaster", "mydemo");
  3. $query = "SELECT id,pid,name FROM category";
  4.  if ($result = mysqli_query($link, $query))
  5.      var_dump(mysqli_fetch_fields($result));
  6.  mysqli_free_result($result);
  7. }    
  8. ?>
к тому же вы используете ООП в выводе и процедурный подход в запросе
так нельзя
вывод тогда будет не $val->id а $val['id']
наверное опечатка в примере
(Добавление)
или я сам чегото не понял
 
 Top
Kubert
Отправлено: 23 Августа, 2011 - 11:12:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 186
Дата рег-ции: Февр. 2010  


Помог: 3 раз(а)




LIME не понимаю!

у меня вот что...
Спойлер (Отобразить)

(Добавление)
Может мы вообще о разном?))) И я совсем ничего не понимаю...
 
 Top
EuGen Администратор
Отправлено: 23 Августа, 2011 - 11:28:47
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Заходите "Поиск" (форумный), далее скажем строка поиска такая - "дерево mysql"
Примерно 40 тем, большинство из них соответствуют Вашей задаче.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB