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 страницу

 PHP.SU

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


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

> Без описания
Gost12345
Отправлено: 24 Ноября, 2016 - 19:20:23
Post Id


Новичок


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


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




,

(Отредактировано автором: 28 Февраля, 2017 - 07:29:56)

 
 Top
Строитель Модератор
Отправлено: 24 Ноября, 2016 - 20:10:56
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Gost12345, примерно так. Ещё надо дописать подключение к вашей базе, и подкорректировать названия её полей.
Цитата:
Поле цвет должен быть как id
Как id лучше использовать числовой автоинкремент, а выбор цвета использовать в условии WHERE `color` = 'красный' при выборке данных.
Спойлер (Отобразить)
PS: Запросы в циклах вроде бы не приветствуются, поэтому может быть кто-то подскажет, как лучше это реализовать
 
 Top
Gost12345
Отправлено: 25 Ноября, 2016 - 11:04:12
Post Id


Новичок


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


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




Спасибо, буду пробовать
 
 Top
Gost12345
Отправлено: 28 Ноября, 2016 - 10:42:46
Post Id


Новичок


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


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




не получается, не хочет заносить данные в базу
 
 Top
Строитель Модератор
Отправлено: 28 Ноября, 2016 - 13:31:39
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Gost12345, опубликуйте ваш код целиком. Если не хотите публично, пишите в приват.
 
 Top
Gost12345
Отправлено: 28 Ноября, 2016 - 14:01:21
Post Id


Новичок


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


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




.

(Отредактировано автором: 28 Февраля, 2017 - 07:30:52)

 
 Top
Строитель Модератор
Отправлено: 28 Ноября, 2016 - 14:20:23
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Gost12345, что-то у вас совсем не внятное в коде... Подключение к базе кто за вас будет делать? И данные для строки запроса вы как-то не корректно собираете.
 
 Top
Gost12345
Отправлено: 28 Ноября, 2016 - 14:28:09
Post Id


Новичок


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


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




Подключение к базе есть, просто не написано здесь, это код самого чтения txt файла
 
 Top
Строитель Модератор
Отправлено: 28 Ноября, 2016 - 14:44:29
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


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




Gost12345 пишет:
просто не написано здесь
, я подозреваю, что кроме подключения к базе, у вас нет в коде и соответствующих функций для работы с бд. Или весь код публикуйте, или я не магистр.
 
 Top
NeuroZ
Отправлено: 28 Ноября, 2016 - 15:24:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 393
Дата рег-ции: Апр. 2012  


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




Цитата:
('1',название,цена,количество,цвет)

1. Нужно экранировать все значения.
2. Числа можно не экранировать, если есть уверенность, что должен прийти интеджер в определенное поле - я бы вместо экранирования использовал жесткое приведение типа (int)
(Добавление)
И кстати для проверки коррректности SQL запроса - можно просто скопировать строчку и вставить в SQL-запрос через phpMyAdmin - если ошибок нет, значит ошибка не в SQL.
А пока что я вижу явные ошибки в SQL, а PHP кода не вижу вообще.
 
 Top
rainboww1988
Отправлено: 28 Ноября, 2016 - 16:04:58
Post Id


Новичок


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. $file = file('data.dat');     //Открываем файл.
  3. $count = count($file);   //Узнаём сколько строк.
  4.  
  5. for($i = 0; $i < $count; $i++){  // читаем все строки.
  6.             echo $file[$i].'<hr />';  //Выводим по 1.
  7. }
  8.  
  9. ?>

В данном случае каждая следующая строка просто выводится в браузере через <hr>. А тебе надо вместо вывода заносить нужную строку в нужное поле таблицы MySQL.
 
 Top
nooblamer
Отправлено: 28 Ноября, 2016 - 19:14:53
Post Id


Новичок


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


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




Gost12345 пишет:
Добрый день. Есть файл data.txt.
-------------------------------- ----------
название| цена| количество| цвет|
-------------------------------- ---------
Роза | 100 | 6| красный|
-------------------------------
Пион | 150| 50| красный|
-------------------------------
Роза | 80 | 50| желтый|
----------------------------
Пион | 100|20| желтый

Нужно эти данные добавить в БД, таблицы уже есть. Таблицы Роза, Пион. Поле цвет должен быть как id.



Спойлер (Отобразить)

(Отредактировано автором: 28 Ноября, 2016 - 22:02:53)

 
 Top
Gost12345
Отправлено: 29 Ноября, 2016 - 18:36:43
Post Id


Новичок


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


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




В начале файла подключения к базе
"config.php"в котором прописано подключения, здесь все работает. Только ошибку теперь выдает
Notice: Undefined offset:1 ...
Чего то ему не нравиться в $srt[1] в Insert?
 
 Top
nooblamer
Отправлено: 30 Ноября, 2016 - 14:01:14
Post Id


Новичок


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


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




Gost12345 пишет:
В начале файла подключения к базе
"config.php"в котором прописано подключения, здесь все работает. Только ошибку теперь выдает
Notice: Undefined offset:1 ...
Чего то ему не нравиться в $srt[1] в Insert?



А так:

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. $str = explode("|", $str);
  12. $sql .= "(NULL, '".$str[0]."', '".$str[1]."', '".$str[2]."', '".$str[3]."'),";
  13. }
  14. $i++;
  15. }
  16. $sql = rtrim($sql, ',').';';
  17.  
  18.  
  19. //id должен быть AUTO_INCREMENT
 
 Top
Gost12345
Отправлено: 01 Декабря, 2016 - 07:36:56
Post Id


Новичок


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


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




nooblamer пишет:
Gost12345 пишет:
В начале файла подключения к базе
"config.php"в котором прописано подключения, здесь все работает. Только ошибку теперь выдает
Notice: Undefined offset:1 ...
Чего то ему не нравиться в $srt[1] в Insert?



А так:

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. $str = explode("|", $str);
  12. $sql .= "(NULL, '".$str[0]."', '".$str[1]."', '".$str[2]."', '".$str[3]."'),";
  13. }
  14. $i++;
  15. }
  16. $sql = rtrim($sql, ',').';';
  17.  
  18.  
  19. //id должен быть AUTO_INCREMENT





Здесь выдает ошибку на строку 12, $str[1],$str[2],$str[3]?
 
 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