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

Форум PHP

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

 

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

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

тема: Json в базу
 
 автор: Port_Artur3   (15.02.2015 в 14:02)   письмо автору
 
 

Есть Json. Записей 10 тысяч
После
$filem=json_decode($file, true);

$filem иеет вид:

[{"aie_ita":"32K","ai_io":null,"de_ata":"SY","dep_a_ao":null,"arrivalata":"GE","ar_aao":null,"cdesare":false,"trars":0,"anes":["39","320"]},
{"aie_ita":"36K","ai_io":null,"de_ata":"FY","dep_a_ao":null,"arrivalata":"GE","ar_aao":null,"cdesare":false,"trars":0,"anes":["39","320"]},
{"aie_ita":"38K","ai_io":null,"de_ata":"GY","dep_a_ao":null,"arrivalata":"GA","ar_aao":null,"cdesare":false,"trars":0,"anes":["39","320","345"]},]

как записать это в базу данных, при условии что anes массив?

  Ответить  
 
 автор: Port_Artur3   (15.02.2015 в 16:03)   письмо автору
 
   для: Port_Artur3   (15.02.2015 в 14:02)
 

Как вообще вытащить данные из записей в переменные, в базу-то я уже запишу. Не понимаю как это сделать.

  Ответить  
 
 автор: Port_Artur3   (15.02.2015 в 18:18)   письмо автору
 
   для: Port_Artur3   (15.02.2015 в 16:03)
 

Как вытащить значения с отображением на экране?
Помогите пожалуйста.

  Ответить  
 
 автор: Port_Artur3   (15.02.2015 в 18:34)   письмо автору
 
   для: Port_Artur3   (15.02.2015 в 18:18)
 

Прошу перенести тему в раздел php

  Ответить  
 
 автор: Sfinks   (15.02.2015 в 21:31)   письмо автору
 
   для: Port_Artur3   (15.02.2015 в 14:02)
 

не может быть, чтобы после
$filem=json_decode($file, true);
$filem имело такой вид.
Потому что это и есть JSON.
Покажите исходные данные и код, который к такому приводит.

  Ответить  
 
 автор: Port_Artur3   (15.02.2015 в 21:47)   письмо автору
 
   для: Sfinks   (15.02.2015 в 21:31)
 

Да, вы правы, это я ошибся.

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

  Ответить  
 
 автор: Sfinks   (15.02.2015 в 22:48)   письмо автору
 
   для: Port_Artur3   (15.02.2015 в 21:47)
 

Странный вопрос.
Извлечь данные можно сотней способов.
Как и вывести.
Тем более, в нужных местах.

Как вариант вот один из способов:
<?php

  $var 
'
    [{"aie_ita":"32K","ai_io":null,"de_ata":"SY","dep_a_ao":null,"arrivalata":"GE","ar_aao":null,"cdesare":false,"trars":0,"anes":["39","320"]},
    {"aie_ita":"36K","ai_io":null,"de_ata":"FY","dep_a_ao":null,"arrivalata":"GE","ar_aao":null,"cdesare":false,"trars":0,"anes":["39","320"]},
    {"aie_ita":"38K","ai_io":null,"de_ata":"GY","dep_a_ao":null,"arrivalata":"GA","ar_aao":null,"cdesare":false,"trars":0,"anes":["39","320","345"]}]
'
;
  
$arr json_decode($vartrue);

  foreach(
$arr as $sub_arr){
    
extract($sub_arr);
    
$anes implode(','$anes);
    echo 
"
      'aie_ita' => 
$aie_ita
      'ai_io' => 
$ai_io
      'de_ata' => 
$de_ata
      'dep_a_ao' => 
$dep_a_ao
      'arrivalata' => 
$arrivalata
      'ar_aao' => 
$ar_aao
      'cdesare' => 
$cdesare
      'trars' => 
$trars
      'anes' => 
$anes
"
;
}

  Ответить  
 
 автор: Port_Artur3   (16.02.2015 в 20:06)   письмо автору
 
   для: Sfinks   (15.02.2015 в 22:48)
 

А как значение aie_ita в вашем примере просто занести в переменную?

  Ответить  
 
 автор: Port_Artur3   (16.02.2015 в 20:48)   письмо автору
 
   для: Port_Artur3   (16.02.2015 в 20:06)
 

Пример, который я привёл, после этого года:

 $arr = json_decode($var, true);
          echo($arr);


выводит:

Array


А когда в качестве источника подключаю исходный примеру файл. Ничего не выводит.

Есть ли ограничение по размеру JSON?

  Ответить  
 
 автор: Trianon   (16.02.2015 в 21:28)   письмо автору
 
   для: Port_Artur3   (15.02.2015 в 14:02)
 

простите за нескромный и не по теме вопрос.
Ники Port_Artur и Port_Artur1 на этом форуме - ваши?

  Ответить  
 
 автор: Port_Artur3   (16.02.2015 в 22:53)   письмо автору
 
   для: Trianon   (16.02.2015 в 21:28)
 

Да. Пароль не могу восстановить. А что?
Если есть возможность, то объедините под единым Port_Artur

  Ответить  
 
 автор: Trianon   (16.02.2015 в 22:58)   письмо автору
 
   для: Port_Artur3   (16.02.2015 в 22:53)
 

Это если только Cheops'a просить...

  Ответить  
 
 автор: Port_Artur3   (16.02.2015 в 23:58)   письмо автору
 
   для: Trianon   (16.02.2015 в 22:58)
 

как значение aie_ita в примере выше занести в переменную?
Можно пример

  Ответить  
 
 автор: Trianon   (17.02.2015 в 20:36)   письмо автору
 
   для: Port_Artur3   (16.02.2015 в 23:58)
 

в примере выше значение заносится в ходе вызова extract()

Явным образом - как-то так:
<?

   $aie_ita 
$arr[15]['aie_ita'];


вообще же существуют такие полезные штуки, как print_r($arr) и var_dump($arr)

  Ответить  
 
 автор: Port_Artur3   (07.03.2015 в 01:02)   письмо автору
 
   для: Trianon   (17.02.2015 в 20:36)
 

$item - подмассив массива JSON и вот так заносится в массив переменных всё нормально.
if (is_array($item)){
          foreach($item as $it){

            $array[$i]=$it;
           echo $array[$i];
           }
        }


но количество переменных в подмассиве при их одинаковых названиях всегда разное:

может быть так:
{en":"Nik","tr":"Nic"}

а может быть и так:
{en":"Nik","cn":"Nic","tr":"Nic"}


Тогда было решено приcваивать не элементам массива а конкретным переменным, но почему-то не работает:

if (is_array($item)){
                    extract($item);
            $n_en=$en; echo $n_en.",";
             $n_cn=$cn; echo $n_cn.",";
             $n_tr=$tr; echo $n_tr.",";
              }



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

  Ответить  
 
 автор: Trianon   (17.02.2015 в 20:44)   письмо автору
 
   для: Trianon   (16.02.2015 в 22:58)
 

и если просить, то похоже, в разделе Разное.
Сюда он заглядывает не столь регулярно.

  Ответить  
 
 автор: Port_Artur3   (07.03.2015 в 01:03)   письмо автору
 
   для: Trianon   (17.02.2015 в 20:44)
 

$item - подмассив массива JSON и вот так заносится в массив переменных всё нормально и всё нормально выводится на экран.
if (is_array($item)){ 
          foreach($item as $it){ 

            $array[$i]=$it; 
           echo $array[$i]; 
           } 
        }



но количество переменных в подмассиве при их одинаковых названиях всегда разное:

может быть так:
{en":"Nik","tr":"Nic"}


а может быть и так:
{en":"Nik","cn":"Nic","tr":"Nic"}



Тогда было решено приcваивать не элементам массива а конкретным переменным, но почему-то не работает:

if (is_array($item)){ 
                    extract($item); 
            $n_en=$en; echo $n_en.","; 
             $n_cn=$cn; echo $n_cn.","; 
             $n_tr=$tr; echo $n_tr.","; 
              }




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

  Ответить  
 
 автор: Trianon   (07.03.2015 в 17:00)   письмо автору
 
   для: Port_Artur3   (07.03.2015 в 01:03)
 

<?
if (is_array($item)){ 
          foreach(
$item as $key => $it){ 

            
$array[$key]=$it
           echo 
"<br> array[" $key "]=" $array[$key]; 
           } 
        }


Хотя я и не понимаю, почему не воспользоваться сразу исходным массивом.

  Ответить  
 
 автор: Port_Artur3   (07.03.2015 в 20:17)   письмо автору
 
   для: Trianon   (07.03.2015 в 17:00)
 

Спасибо!

  Ответить  
Rambler's Top100
вверх

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