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 :: Экспорт в XML с помощью PHP

 PHP.SU

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


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

> Без описания
Rick_77
Отправлено: 04 Марта, 2021 - 09:57:15
Post Id


Новичок


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


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




Здравствуйте камрады!
Подскажите.
У меня УЖЕ есть готовый код, по экспорту в формат XML данных из MySQL. Однако не пойму одну вещь.
Есть условие при котором в поле записывается значение:
fwrite($create_f, ' <ROW LINE="0" TAB="0" NAME="KB">'.PHP_EOL);
if (strlen($row['naln']==12))
{
fwrite($create_f, ' <VALUE>2</VALUE>'.PHP_EOL);
}else{
fwrite($create_f, ' <VALUE>1</VALUE>'.PHP_EOL);
}
or
{
if ($row['naln']>=1)
fwrite($create_f, ' <VALUE></VALUE>'.PHP_EOL);
}
fwrite($create_f, ' </ROW>'.PHP_EOL);
И так. Первый этап.
Вычисляю длину строки в поле naln, если она равна 12, то в поле "KB" я записываю одно значение ( fwrite($create_f, ' <VALUE>2</VALUE>'.PHP_EOL);), иначе другое ( fwrite($create_f, ' <VALUE>1</VALUE>'.PHP_EOL);).
Загвоздка в третьем значении, а именно, ЕСЛИ длина не превышает значения 1, то необходимо в поле "KB" ничего не записывать.
Дело ещё в том, что когда добавляю ещё одну проверку, то скрипт не срабатывает.
Где, что я недосмотрел и почему?
Спасибо.

(Отредактировано автором: 04 Марта, 2021 - 10:36:54)

 
 Top
Vladimir Kheifets
Отправлено: 04 Марта, 2021 - 14:03:17
Post Id



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


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




Rick_77 пишет:
Здравствуйте камрады!
Подскажите.
У меня УЖЕ есть готовый код, по экспорту в формат XML данных из MySQL. Однако не пойму одну вещь.
PHP:
скопировать код в буфер обмена
  1. if ($row['naln']>=1)
  2.   fwrite($create_f, '<VALUE></VALUE>'.PHP_EOL);

Загвоздка в третьем значении, а именно, ЕСЛИ длина не превышает значения 1, то необходимо в поле "KB" ничего не записывать.
Где, что я недосмотрел и почему?
Спасибо.

Добрый день! Если хотите проверить длину, то д.б.
Удачи!

(Отредактировано автором: 04 Марта, 2021 - 14:04:46)

 
 Top
Rick_77
Отправлено: 04 Марта, 2021 - 14:13:53
Post Id


Новичок


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


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




Vladimir Kheifets пишет:
Rick_77 пишет:
Здравствуйте камрады!
Подскажите.
У меня УЖЕ есть готовый код, по экспорту в формат XML данных из MySQL. Однако не пойму одну вещь.
PHP:
скопировать код в буфер обмена
  1. if ($row['naln']>=1)
  2.   fwrite($create_f, '<VALUE></VALUE>'.PHP_EOL);

Загвоздка в третьем значении, а именно, ЕСЛИ длина не превышает значения 1, то необходимо в поле "KB" ничего не записывать.
Где, что я недосмотрел и почему?
Спасибо.

Добрый день! Если хотите проверить длину, то д.б.
Удачи!


Благодарю за внимание к такому, казалось бы простому вопросу (для меня). Пробую.
 
 Top
Rick_77
Отправлено: 04 Марта, 2021 - 16:21:39
Post Id


Новичок


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


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




Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77 пишет:
Здравствуйте камрады!
Подскажите.
У меня УЖЕ есть готовый код, по экспорту в формат XML данных из MySQL. Однако не пойму одну вещь.
PHP:
скопировать код в буфер обмена
  1. if ($row['naln']>=1)
  2.   fwrite($create_f, '<VALUE></VALUE>'.PHP_EOL);

Загвоздка в третьем значении, а именно, ЕСЛИ длина не превышает значения 1, то необходимо в поле "KB" ничего не записывать.
Где, что я недосмотрел и почему?
Спасибо.

Добрый день! Если хотите проверить длину, то д.б.
Удачи!


Благодарю за внимание к такому, казалось бы простому вопросу (для меня). Пробую.



К сожалению не помогло(((
 
 Top
Vladimir Kheifets
Отправлено: 04 Марта, 2021 - 16:57:44
Post Id



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


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




Rick_77 пишет:
Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77 пишет:
Здравствуйте камрады!
Подскажите.
У меня УЖЕ есть готовый код, по экспорту в формат XML данных из MySQL. Однако не пойму одну вещь.
PHP:
скопировать код в буфер обмена
  1. if ($row['naln']>=1)
  2.   fwrite($create_f, '<VALUE></VALUE>'.PHP_EOL);

Загвоздка в третьем значении, а именно, ЕСЛИ длина не превышает значения 1, то необходимо в поле "KB" ничего не записывать.
Где, что я недосмотрел и почему?
Спасибо.

Добрый день! Если хотите проверить длину, то д.б.
Удачи!


Благодарю за внимание к такому, казалось бы простому вопросу (для меня). Пробую.



К сожалению не помогло(((


Покажите, пожалуйста, Ваш код так, чтобы он был читаемым - в блоке [PHP]
 
 Top
Rick_77
Отправлено: 05 Марта, 2021 - 08:01:35
Post Id


Новичок


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


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




Vladimir Kheifets пишет:
Rick_77 пишет:
Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77 пишет:
Здравствуйте камрады!
Подскажите.
У меня УЖЕ есть готовый код, по экспорту в формат XML данных из MySQL. Однако не пойму одну вещь.
PHP:
скопировать код в буфер обмена
  1. if ($row['naln']>=1)
  2.   fwrite($create_f, '<VALUE></VALUE>'.PHP_EOL);

Загвоздка в третьем значении, а именно, ЕСЛИ длина не превышает значения 1, то необходимо в поле "KB" ничего не записывать.
Где, что я недосмотрел и почему?
Спасибо.

Добрый день! Если хотите проверить длину, то д.б.
Удачи!


Благодарю за внимание к такому, казалось бы простому вопросу (для меня). Пробую.



К сожалению не помогло(((


Покажите, пожалуйста, Ваш код так, чтобы он был читаемым - в блоке [PHP]

CODE (html):
скопировать код в буфер обмена
  1.  
  2. ...
  3. fwrite($create_f, '        <ROW LINE="0" TAB="0" NAME="KB">'.PHP_EOL);
  4.         //if (strlen($row['naln']==12))
  5.         if ($row['naln']=12)
  6.         {
  7.                 fwrite($create_f, '          <VALUE>2</VALUE>'.PHP_EOL);
  8.         }
  9.         else
  10.         {
  11.                 fwrite($create_f, '          <VALUE>1</VALUE>'.PHP_EOL);
  12.         }
  13.         {
  14.     if ($row['naln']>=1)
  15.                 fwrite($create_f, '<VALUE></VALUE>'.PHP_EOL);
  16.         }
  17.         fwrite($create_f, '        </ROW>'.PHP_EOL);
  18. ...
  19.  

Спасибо.

(Отредактировано автором: 05 Марта, 2021 - 08:03:48)

 
 Top
Vladimir Kheifets
Отправлено: 05 Марта, 2021 - 10:03:02
Post Id



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


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




Rick_77,
Вы заменили
PHP:
скопировать код в буфер обмена
  1.  //if (strlen($row['naln']==12))
  2. if ($row['naln']=12)
Потеряли знак =
т.е хотелось бы проверить не длину строки, а значение $row['naln']
попробуйте так:
Спойлер (Отобразить)
Удачи!

P.S. Для конвертироваия array в xml можно применить PHP class SimpleXMLElement
https://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml

(Отредактировано автором: 05 Марта, 2021 - 10:04:08)

 
 Top
Rick_77
Отправлено: 05 Марта, 2021 - 10:49:06
Post Id


Новичок


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


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




Vladimir Kheifets пишет:
Rick_77,
Вы заменили
PHP:
скопировать код в буфер обмена
  1.  //if (strlen($row['naln']==12))
  2. if ($row['naln']=12)
Потеряли знак =
т.е хотелось бы проверить не длину строки, а значение $row['naln']
попробуйте так:
Спойлер (Отобразить)
Удачи!

P.S. Для конвертироваия array в xml можно применить PHP class SimpleXMLElement
https://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml

Благодарю ещё раз!
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.
(Добавление)
Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77,
Вы заменили
PHP:
скопировать код в буфер обмена
  1.  //if (strlen($row['naln']==12))
  2. if ($row['naln']=12)
Потеряли знак =
т.е хотелось бы проверить не длину строки, а значение $row['naln']
попробуйте так:
Спойлер (Отобразить)
Удачи!

P.S. Для конвертироваия array в xml можно применить PHP class SimpleXMLElement
https://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml

Благодарю ещё раз!
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.


И при длине в 10 символов тоже. Значит не срабатывает проверка на длину строки и переходит сразу на условие где значение >= 1
 
 Top
Vladimir Kheifets
Отправлено: 05 Марта, 2021 - 11:10:40
Post Id



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


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




Rick_77 пишет:
Благодарю ещё раз!
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.

Что у Вас $row['naln'] - число или строка?
Что Вы хотите проверить длины строк или значения чисел в $row['naln']?
Можно предположить, что если ($row['naln']==12) false , то там нет числа 12.
Если пытаться угадывать, то поменяйте $row['naln'] на strlen($row['naln'])

(Отредактировано автором: 05 Марта, 2021 - 11:15:48)

 
 Top
Rick_77
Отправлено: 05 Марта, 2021 - 11:13:37
Post Id


Новичок


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


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




Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77,
Вы заменили
PHP:
скопировать код в буфер обмена
  1.  //if (strlen($row['naln']==12))
  2. if ($row['naln']=12)
Потеряли знак =
т.е хотелось бы проверить не длину строки, а значение $row['naln']
попробуйте так:
Спойлер (Отобразить)
Удачи!

P.S. Для конвертироваия array в xml можно применить PHP class SimpleXMLElement
https://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml

Благодарю ещё раз!
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.
(Добавление)
Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77,
Вы заменили
PHP:
скопировать код в буфер обмена
  1.  //if (strlen($row['naln']==12))
  2. if ($row['naln']=12)
Потеряли знак =
т.е хотелось бы проверить не длину строки, а значение $row['naln']
попробуйте так:
Спойлер (Отобразить)
Удачи!

P.S. Для конвертироваия array в xml можно применить PHP class SimpleXMLElement
https://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml

Благодарю ещё раз!
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.



И при длине в 10 символов тоже. Значит не срабатывает проверка на длину строки и переходит сразу на условие где значение >= 1
Значения в таблице у меня такие.
(Добавление)
Rick_77 пишет:
Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77,
Вы заменили
PHP:
скопировать код в буфер обмена
  1.  //if (strlen($row['naln']==12))
  2. if ($row['naln']=12)
Потеряли знак =
т.е хотелось бы проверить не длину строки, а значение $row['naln']
попробуйте так:
Спойлер (Отобразить)
Удачи!

P.S. Для конвертироваия array в xml можно применить PHP class SimpleXMLElement
https://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml

Благодарю ещё раз!
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.
(Добавление)
Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77,
Вы заменили
PHP:
скопировать код в буфер обмена
  1.  //if (strlen($row['naln']==12))
  2. if ($row['naln']=12)
Потеряли знак =
т.е хотелось бы проверить не длину строки, а значение $row['naln']
попробуйте так:
Спойлер (Отобразить)
Удачи!

P.S. Для конвертироваия array в xml можно применить PHP class SimpleXMLElement
https://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml

Благодарю ещё раз!
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.



И при длине в 10 символов тоже. Значит не срабатывает проверка на длину строки и переходит сразу на условие где значение >= 1
Значения в таблице у меня такие.

В случае с длиной строки тоже не срабатывает (strlen($row['naln']) == 12)
Прикреплено изображение
Значения.jpg
 
 Top
Vladimir Kheifets
Отправлено: 05 Марта, 2021 - 14:47:04
Post Id



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


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




Rick_77 пишет:
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.
И при длине в 10 символов тоже. Значит не срабатывает проверка на длину строки и переходит сразу на условие где значение >= 1
Значения в таблице у меня такие.
В случае с длиной строки тоже не срабатывает (strlen($row['naln']) == 12)

На самом деле с strlen($row['naln']) == 12) cрабатывало.
У Вас было проблема с " длина не превышает значения 1"
Я добавил в тэг value атрибут test, который после тестирования нужно убрать.
Спойлер (Отобразить)
Удачи!

(Отредактировано автором: 05 Марта, 2021 - 14:47:54)

 
 Top
Rick_77
Отправлено: 05 Марта, 2021 - 15:25:27
Post Id


Новичок


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


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




Vladimir Kheifets пишет:
Rick_77 пишет:
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.
И при длине в 10 символов тоже. Значит не срабатывает проверка на длину строки и переходит сразу на условие где значение >= 1
Значения в таблице у меня такие.
В случае с длиной строки тоже не срабатывает (strlen($row['naln']) == 12)

На самом деле с strlen($row['naln']) == 12) cрабатывало.
У Вас было проблема с " длина не превышает значения 1"
Я добавил в тэг value атрибут test, который после тестирования нужно убрать.
Спойлер (Отобразить)
Удачи!


Большущая благодарность за участие.
Решил вопрос таким способом:
PHP:
скопировать код в буфер обмена
  1.  
  2.     fwrite($create_f, '<ROW LINE="0" TAB="0" NAME="KB">'.PHP_EOL);
  3.                 if (strlen($row['naln']) == 10)
  4.                 {
  5.                         fwrite($create_f, '<VALUE>1</VALUE>'.PHP_EOL);
  6.                 }
  7.                         else if (strlen($row['naln']) == 12)
  8.                         {
  9.                 fwrite($create_f, '<VALUE>2</VALUE>'.PHP_EOL);
  10.                         }
  11.                 else
  12.                 {
  13.              fwrite($create_f, '<VALUE></VALUE>'.PHP_EOL);
  14.                 }
  15.     fwrite($create_f, '</ROW>'.PHP_EOL);
  16.  

(Отредактировано автором: 05 Марта, 2021 - 15:30:51)

 
 Top
Vladimir Kheifets
Отправлено: 05 Марта, 2021 - 18:17:16
Post Id



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


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77 пишет:
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.
И при длине в 10 символов тоже. Значит не срабатывает проверка на длину строки и переходит сразу на условие где значение >= 1
Значения в таблице у меня такие.
В случае с длиной строки тоже не срабатывает (strlen($row['naln']) == 12)

На самом деле с strlen($row['naln']) == 12) cрабатывало.
У Вас было проблема с " длина не превышает значения 1"
Я добавил в тэг value атрибут test, который после тестирования нужно убрать.
Спойлер (Отобразить)
Удачи!


Большущая благодарность за участие.
Решил вопрос таким способом:
PHP:
скопировать код в буфер обмена
  1.  
  2.     fwrite($create_f, '<ROW LINE="0" TAB="0" NAME="KB">'.PHP_EOL);
  3.                 if (strlen($row['naln']) == 10)
  4.                 {
  5.                         fwrite($create_f, '<VALUE>1</VALUE>'.PHP_EOL);
  6.                 }
  7.                         else if (strlen($row['naln']) == 12)
  8.                         {
  9.                 fwrite($create_f, '<VALUE>2</VALUE>'.PHP_EOL);
  10.                         }
  11.                 else
  12.                 {
  13.              fwrite($create_f, '<VALUE></VALUE>'.PHP_EOL);
  14.                 }
  15.     fwrite($create_f, '</ROW>'.PHP_EOL);
  16.  

Можно короче
PHP:
скопировать код в буфер обмена
  1. foreach($res as $row['naln'])
  2. {      
  3.     $len = strlen($row['naln']);
  4.     $value=$len==12?2:$len==10?1:"";
  5.     fwrite($create_f, '<ROW LINE="0" TAB="0" NAME="KB">'.PHP_EOL);  
  6.     fwrite($create_f, "<VALUE>$value</VALUE>".PHP_EOL);    
  7.     fwrite($create_f, '</ROW>'.PHP_EOL);
  8. }
 
 Top
Rick_77
Отправлено: 09 Марта, 2021 - 08:39:18
Post Id


Новичок


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


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




Vladimir Kheifets пишет:
Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77 пишет:
Однако не сработало корректно. А именно при длине в 12 символов записывает пустое значение.
И при длине в 10 символов тоже. Значит не срабатывает проверка на длину строки и переходит сразу на условие где значение >= 1
Значения в таблице у меня такие.
В случае с длиной строки тоже не срабатывает (strlen($row['naln']) == 12)

На самом деле с strlen($row['naln']) == 12) cрабатывало.
У Вас было проблема с " длина не превышает значения 1"
Я добавил в тэг value атрибут test, который после тестирования нужно убрать.
Спойлер (Отобразить)
Удачи!


Большущая благодарность за участие.
Решил вопрос таким способом:
PHP:
скопировать код в буфер обмена
  1.  
  2.     fwrite($create_f, '<ROW LINE="0" TAB="0" NAME="KB">'.PHP_EOL);
  3.                 if (strlen($row['naln']) == 10)
  4.                 {
  5.                         fwrite($create_f, '<VALUE>1</VALUE>'.PHP_EOL);
  6.                 }
  7.                         else if (strlen($row['naln']) == 12)
  8.                         {
  9.                 fwrite($create_f, '<VALUE>2</VALUE>'.PHP_EOL);
  10.                         }
  11.                 else
  12.                 {
  13.              fwrite($create_f, '<VALUE></VALUE>'.PHP_EOL);
  14.                 }
  15.     fwrite($create_f, '</ROW>'.PHP_EOL);
  16.  

Можно короче
PHP:
скопировать код в буфер обмена
  1. foreach($res as $row['naln'])
  2. {      
  3.     $len = strlen($row['naln']);
  4.     $value=$len==12?2:$len==10?1:"";
  5.     fwrite($create_f, '<ROW LINE="0" TAB="0" NAME="KB">'.PHP_EOL);  
  6.     fwrite($create_f, "<VALUE>$value</VALUE>".PHP_EOL);    
  7.     fwrite($create_f, '</ROW>'.PHP_EOL);
  8. }


Благодарю за помощь! Удачи!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB