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 :: Импорт из .ТХТ

 PHP.SU

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


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

> Описание: Подскажите как?
Virgin
Отправлено: 22 Мая, 2008 - 13:51:49
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


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




Доброго времени суток!
ЕСть текстовый файл содержащий что-то подобное

1*3*2*4*номера*счет
1*3*8*7*нет*счет
......
2*4*8*9*нет*счет

Мне нужно его вывести в виде таблицы средствами РНР! т.е. звездочки это типа разделителя ячеек....Может кто подскажет как? или хотябы как импортировать в mysql таблицу где данные через звездочки(*) были содержимым полей
Помогите!? Не понял
 
 Top
EuGen Администратор
Отправлено: 22 Мая, 2008 - 14:33:54
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $rgData=file("ваш_файл.txt");
  4. $sql="INSERT INTO `ваша_таблица` ";
  5. $sqlData=array();
  6. foreach ($rgData as $key=>$value)
  7. {
  8.    $row=explode('*', $value);
  9.    $sqlData[]="(".join(',',$row).")";
  10. }
  11. $sql.=join(',',$sqlData);
  12. $result=mysql_query($sql);
  13. ?>
  14.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Virgin
Отправлено: 22 Мая, 2008 - 15:46:20
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


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




простите, а перед file() не должно идти чтото типа fopen("ваш файл.тхт",r) ? А то у меня чтото ругается (failed to open streamУлыбка
 
 Top
EuGen Администратор
Отправлено: 22 Мая, 2008 - 16:35:00
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Нет, не должно. Полный текст ошибки - в студию (подозреваю что-то с правами доступа или наличием файла).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
SION-ZENIT
Отправлено: 22 Мая, 2008 - 22:23:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 148
Дата рег-ции: Июль 2007  
Откуда: SPb


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




Virgin пишет:
А то у меня чтото ругается (failed to open stream

Имя файла правильно указали???
 
 Top
Virgin
Отправлено: 23 Мая, 2008 - 08:20:22
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


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




Проверил из файла вроде все нормально выводится в виде
1,3,2,4,номера,счет

Но в таблицу чото ничего не записывается...?
таблицу создал типа
CREATE TABLE `tab` (
`cod` tinyint(10) default NULL,
`name_doc` varchar(20) default NULL,
`num_doc` varchar(20) default NULL,
`comment` text,
`debet` varchar(20) default NULL,
`kredit` varchar(20) default NULL)

Подозреваю, что пытается записать все в первое поле, хотя может я и не прав Не понял
 
 Top
SergeantPEPPER
Отправлено: 23 Мая, 2008 - 09:31:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


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




А Вы попробуйте начать с какого-нибуть простого sql-запроса...

Например, простой INSERT одной строки в Вашу таблицу.

Затем уже пробуйте то, что привел Вам EuGen

Я вообще всегда делаю так:
В приведенном коде присутствует строка
CODE (text):
скопировать код в буфер обмена
  1. $result=mysql_query($sql);

где $sql - переменная содержащая сам текст sql запроса --- я предпочитаю ее выводить на экран и смотреть правилен ли получившийся синтаксис (после сложных манипуляций в цикле):
CODE (text):
скопировать код в буфер обмена
  1. echo 'SQL-query is: ' . $sql;


З.Ы. Да к тому же при неправильном запросе sql должен выдавать текст ошибки
 
 Top
EuGen Администратор
Отправлено: 23 Мая, 2008 - 09:39:15
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Ну да, не исключено что я ошибся. Все-таки "с ходу" трудновато написать. Но вообще выглядит все правильно.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Virgin
Отправлено: 26 Мая, 2008 - 14:54:23
Post Id


Частый гость


Покинул форум
Сообщений всего: 130
Дата рег-ции: Май 2008  


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




Спасиб за ответ!
я проверил вот таким вот способом

LOAD DATA INFILE 'you_file.txt'
INTO TABLE you_tabl
FIELDS TERMINATED BY '*';
работает вроде....

Ваш скрипт при обращении к нему выдает чтото типа
SQL-query is: INSERT INTO `tab` (1,3,2,4,счет,нет),(2,8,7,4,счет,нет),....
но в MySQL ничего не появляется!

(Отредактировано автором: 26 Мая, 2008 - 15:01:38)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB