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

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

1. Gost12345 - 24 Ноября, 2016 - 19:20:23 - перейти к сообщению
,
2. Строитель - 24 Ноября, 2016 - 20:10:56 - перейти к сообщению
Gost12345, примерно так. Ещё надо дописать подключение к вашей базе, и подкорректировать названия её полей.
Цитата:
Поле цвет должен быть как id
Как id лучше использовать числовой автоинкремент, а выбор цвета использовать в условии WHERE `color` = 'красный' при выборке данных.
Спойлер (Отобразить)
PS: Запросы в циклах вроде бы не приветствуются, поэтому может быть кто-то подскажет, как лучше это реализовать
3. Gost12345 - 25 Ноября, 2016 - 11:04:12 - перейти к сообщению
Спасибо, буду пробовать
4. Gost12345 - 28 Ноября, 2016 - 10:42:46 - перейти к сообщению
не получается, не хочет заносить данные в базу
5. Строитель - 28 Ноября, 2016 - 13:31:39 - перейти к сообщению
Gost12345, опубликуйте ваш код целиком. Если не хотите публично, пишите в приват.
6. Gost12345 - 28 Ноября, 2016 - 14:01:21 - перейти к сообщению
.
7. Строитель - 28 Ноября, 2016 - 14:20:23 - перейти к сообщению
Gost12345, что-то у вас совсем не внятное в коде... Подключение к базе кто за вас будет делать? И данные для строки запроса вы как-то не корректно собираете.
8. Gost12345 - 28 Ноября, 2016 - 14:28:09 - перейти к сообщению
Подключение к базе есть, просто не написано здесь, это код самого чтения txt файла
9. Строитель - 28 Ноября, 2016 - 14:44:29 - перейти к сообщению
Gost12345 пишет:
просто не написано здесь
, я подозреваю, что кроме подключения к базе, у вас нет в коде и соответствующих функций для работы с бд. Или весь код публикуйте, или я не магистр.
10. NeuroZ - 28 Ноября, 2016 - 15:24:14 - перейти к сообщению
Цитата:
('1',название,цена,количество,цвет)

1. Нужно экранировать все значения.
2. Числа можно не экранировать, если есть уверенность, что должен прийти интеджер в определенное поле - я бы вместо экранирования использовал жесткое приведение типа (int)
(Добавление)
И кстати для проверки коррректности SQL запроса - можно просто скопировать строчку и вставить в SQL-запрос через phpMyAdmin - если ошибок нет, значит ошибка не в SQL.
А пока что я вижу явные ошибки в SQL, а PHP кода не вижу вообще.
11. rainboww1988 - 28 Ноября, 2016 - 16:04:58 - перейти к сообщению
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.
12. nooblamer - 28 Ноября, 2016 - 19:14:53 - перейти к сообщению
Gost12345 пишет:
Добрый день. Есть файл data.txt.
-------------------------------- ----------
название| цена| количество| цвет|
-------------------------------- ---------
Роза | 100 | 6| красный|
-------------------------------
Пион | 150| 50| красный|
-------------------------------
Роза | 80 | 50| желтый|
----------------------------
Пион | 100|20| желтый

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



Спойлер (Отобразить)
13. Gost12345 - 29 Ноября, 2016 - 18:36:43 - перейти к сообщению
В начале файла подключения к базе
"config.php"в котором прописано подключения, здесь все работает. Только ошибку теперь выдает
Notice: Undefined offset:1 ...
Чего то ему не нравиться в $srt[1] в Insert?
14. nooblamer - 30 Ноября, 2016 - 14:01:14 - перейти к сообщению
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
15. Gost12345 - 01 Декабря, 2016 - 07:36:56 - перейти к сообщению
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]?

 

Powered by ExBB FM 1.0 RC1