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 :: Дынные из txt файла в БД и затем в таблицу на HTML страницу [2]

 PHP.SU

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


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

> Без описания
nooblamer
Отправлено: 02 Декабря, 2016 - 13:26:31
Post Id


Новичок


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


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




Gost12345 так значит файл data.txt не правильно оформлен изначально, он должен быть в таком формате:
CODE (htmlphp):
скопировать код в буфер обмена
  1. название|цена|количество|цвет
  2. Роза|100|6|красный
  3. Пион|150|50|красный
  4. Роза|80|50|желтый
  5. Пион|100|20|желтый
  6.  


не должно быть подчеркиваний после каждой строки, да и лишние | после последнего столбца не нужны, но это не критично, а вот подчеркиваний быть не должно.

мой пример на основе файла, который привёл выше формирует запрос так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. INSERT INTO `Rosa`(`id`, `name`, `price`, `count`, `color`) VALUES (NULL, 'Роза', '100', '6', 'красный '),(NULL, 'Пион', '150', '50', 'красный '),(NULL, 'Роза', '80', '50', 'желтый '),(NULL, 'Пион', '100', '20', 'желтый');


Ошибок никаких нет при этом, да и быть не должно, чекайте свой файл data.txt

Но если нужно работать с файлом из 1-го поста, то можно сделать так:

PHP:
скопировать код в буфер обмена
  1. //тут открываем соединени с БД
  2.  
  3. $file=file("data.txt");
  4.  
  5. $i=0;
  6. $sql = 'INSERT INTO `Rosa`(`id`, `name`, `price`, `count`, `color`) VALUES ';
  7. foreach($file as $str_num => $str)
  8. {
  9. if($i>0) //пропускаем 1-ю строку
  10. {
  11.         if (!strstr($str, '---'))
  12.         {
  13.                 $str = explode("|", $str);
  14.                 $sql .= "(NULL, '".trim($str[0])."', '".trim($str[1])."', '".trim($str[2])."', '".trim($str[3])."'),";
  15.         }
  16. }
  17. $i++;
  18. }
  19. $sql = rtrim($sql, ',').';';
  20.  
  21.  
  22.  
  23. //id должен быть AUTO_INCREMENT

(Отредактировано автором: 02 Декабря, 2016 - 14:28:32)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB