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
Форумы портала PHP.SU :: Версия для печати :: Дынные из txt файла в БД и затем в таблицу на HTML страницу [2]
Форумы портала PHP.SU » » Вопросы новичков » Дынные из txt файла в БД и затем в таблицу на HTML страницу

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

16. nooblamer - 02 Декабря, 2016 - 13:26:31 - перейти к сообщению
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

 

Powered by ExBB FM 1.0 RC1