Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 28.05.2015, 12:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Какая рекурсия, если:
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Киевский
            [surname] => Дмитрий
            [id_fat] => 3
            [id_mot] => 2
        )

    [1] => Array
        (
            [id] => 2
            [name] => Ращупкина
            [surname] => Елизавета
            [id_fat] => 7
            [id_mot] => 0
        )

С чего вдруг:
"name": "Киевский Дмитрий",
    "parent": [{
        "name": "Киевский Владимир",
        "parent": [{

"parent", которого нет в исходном? И не проще ли организовать на сервере из исходного массива средствами РНР массив такой структуры, в котором все будет так как вам нужно, и только потом json_encode? И для этого вряд ли рекурсия потребуется.
Ответить с цитированием
  #12 (permalink)  
Старый 28.05.2015, 12:32
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25

Сообщение от laimas Посмотреть сообщение
Какая рекурсия, если:
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Киевский
            [surname] => Дмитрий
            [id_fat] => 3
            [id_mot] => 2
        )

    [1] => Array
        (
            [id] => 2
            [name] => Ращупкина
            [surname] => Елизавета
            [id_fat] => 7
            [id_mot] => 0
        )

С чего вдруг:
"name": "Киевский Дмитрий",
    "parent": [{
        "name": "Киевский Владимир",
        "parent": [{

"parent", которого нет в исходном? И не проще ли организовать на сервере из исходного массива средствами РНР массив такой структуры, в котором все будет так как вам нужно, и только потом json_encode? И для этого вряд ли рекурсия потребуется.
хм... я об этом не подумал... а про рекурсию я подумал когда начал рисовать на листочке структуру строки и понял то внутри каждой конструкции имя + родитель есть 2 конструкции имя + родитель) и я думал попробовать найти сколько будет таких уровней конструкции и заполнить ее
Но средствами PHP я еще не думал как реализовать, т.к. если в js я еще что то могу попробовать реализовать то с PHP я без понятия
Ответить с цитированием
  #13 (permalink)  
Старый 28.05.2015, 12:34
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25

<?php
///////////////////////
// декодируем русские символы
function jdecoder($json_str) {
  $cyr_chars = array (
    '\u0430' => 'а', '\u0410' => 'А',
    '\u0431' => 'б', '\u0411' => 'Б',
    '\u0432' => 'в', '\u0412' => 'В',
    '\u0433' => 'г', '\u0413' => 'Г',
    '\u0434' => 'д', '\u0414' => 'Д',
    '\u0435' => 'е', '\u0415' => 'Е',
    '\u0451' => 'ё', '\u0401' => 'Ё',
    '\u0436' => 'ж', '\u0416' => 'Ж',
    '\u0437' => 'з', '\u0417' => 'З',
    '\u0438' => 'и', '\u0418' => 'И',
    '\u0439' => 'й', '\u0419' => 'Й',
    '\u043a' => 'к', '\u041a' => 'К',
    '\u043b' => 'л', '\u041b' => 'Л',
    '\u043c' => 'м', '\u041c' => 'М',
    '\u043d' => 'н', '\u041d' => 'Н',
    '\u043e' => 'о', '\u041e' => 'О',
    '\u043f' => 'п', '\u041f' => 'П',
    '\u0440' => 'р', '\u0420' => 'Р',
    '\u0441' => 'с', '\u0421' => 'С',
    '\u0442' => 'т', '\u0422' => 'Т',
    '\u0443' => 'у', '\u0423' => 'У',
    '\u0444' => 'ф', '\u0424' => 'Ф',
    '\u0445' => 'х', '\u0425' => 'Х',
    '\u0446' => 'ц', '\u0426' => 'Ц',
    '\u0447' => 'ч', '\u0427' => 'Ч',
    '\u0448' => 'ш', '\u0428' => 'Ш',
    '\u0449' => 'щ', '\u0429' => 'Щ',
    '\u044a' => 'ъ', '\u042a' => 'Ъ',
    '\u044b' => 'ы', '\u042b' => 'Ы',
    '\u044c' => 'ь', '\u042c' => 'Ь',
    '\u044d' => 'э', '\u042d' => 'Э',
    '\u044e' => 'ю', '\u042e' => 'Ю',
    '\u044f' => 'я', '\u042f' => 'Я',
 
    '\r' => '',
    '\n' => '<br />',
    '\t' => ''
  );
 
  foreach ($cyr_chars as $key => $value) {
    $json_str = str_replace($key, $value, $json_str);
  }
  return $json_str;
}
////////////////////////
$data = array(); // в этот массив запишем то, что выберем из базы

$ta = mysql_query("select id_indi as id, nom as name, prenom1 as surname, ifnull(id_pere,0) as id_fat, ifnull(id_mere,0) as id_mot from got_".$_REQUEST['ibase']."_individu "); // сделаем запрос в БД
while($row = mysql_fetch_assoc($ta)){ // оформим каждую строку результата
                                      // как ассоциативный массив
    $data[] = $row; // допишем строку из выборки как новый элемент результирующего массива
}
echo jdecoder(json_encode($data)); // и отдаём как json
?>


в данный момент я получаю свою json строку так
Ответить с цитированием
  #14 (permalink)  
Старый 28.05.2015, 12:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Что значит без понятия? Вот я например не могу понять (и это никоим образом ни к какому языку программирования не относится, это чисто логический вывод) - как такое может быть?: "name": "Киевский Дмитрий", этот же "Киевский Дмитрий" является для "Киевского Дмитрия" родителем: "parent": [{"name": "Киевский Дмитрий"...

Это как понимать? Это не дерево фамильное, это жертвы Чернобыльской трагедии.

Последний раз редактировалось laimas, 28.05.2015 в 12:40.
Ответить с цитированием
  #15 (permalink)  
Старый 28.05.2015, 12:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

jdecoder(json_encode($data)) - а что за версия РНР используется? Может пора перелазить как минимум на 5.4 и jdecoder() в помойку?
Ответить с цитированием
  #16 (permalink)  
Старый 28.05.2015, 12:42
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25

Ох, я и забыл про это тут весь прикол что это два разных Дмитрия Киевских (внук и дед) (простите за то что не объяснил сразу)... а вот про версию php... такая стоит изначально на денвере... хотя это может быть повод перелезть на опен сервер
Ответить с цитированием
  #17 (permalink)  
Старый 28.05.2015, 12:45
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25

версия php 5.3.13
Ответить с цитированием
  #18 (permalink)  
Старый 28.05.2015, 12:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Давно пора перелезть на Open Server и подключать в нем ту версию, которая будет на реальном сервере. Денвер давно помер.

Что касается вывода из базы и построения дерева, и при этом есть дед с внуком, и дед в базе как "родитель" внука, то запрос не верный. Если его сделать правильно, как и выбирается дерево, и можно без всяких рекурсий, то потом можно из результата построить дерево, но оно никак не будет таким, это неверное представление. А уж потом jsoan_encode().
Ответить с цитированием
  #19 (permalink)  
Старый 28.05.2015, 12:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от dimke931
версия php 5.3.13
Это уже антиквариат
Ответить с цитированием
  #20 (permalink)  
Старый 28.05.2015, 12:50
Интересующийся
Отправить личное сообщение для dimke931 Посмотреть профиль Найти все сообщения от dimke931
 
Регистрация: 27.05.2015
Сообщений: 25



вот графическое изображение этого самого дерева
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу распарсить JSON. gorenie jQuery 3 29.11.2013 22:26
Помощь в реализации шифра вертикальной перестановки Dinobot Общие вопросы Javascript 1 01.12.2012 18:20
Проблемы с jqGrid и JSON massacra_panda Библиотеки/Тулкиты/Фреймворки 1 08.10.2012 16:44
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10