Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как из текстового файла перенести данные в базу данных?
 
 автор: maxim14   (31.03.2011 в 19:53)   письмо автору
686.4 Кб
 
 

Как из текстового файла перенести данные в базу данных если данные разделены знаком табуляции?

  Ответить  
 
 автор: cheops   (31.03.2011 в 20:57)   письмо автору
 
   для: maxim14   (31.03.2011 в 19:53)
 

Можно начать отталкиваться от следующего скрипта
<?php
  $arr 
file("text.txt");
  
$sql = array();
  for(
$i 0$i count($arr); $i++)
  {
    
$arr[$i] = trim($arr[$i]);
    
$line explode("\t"$arr[$i]);
    
$sql[] = "('{$line[0]}',
               '
{$line[1]}',
               '
{$line[2]}',
               '
{$line[3]}',
               '
{$line[4]}',
               '
{$line[5]}')";
  }
  if(!empty(
$sql))
  {
    
// Формируем SQL-запрос
    
$query "INSERT INTO tbl VALUES ".implode(", "$sql);
    
// ...
  
}
?>

  Ответить  
 
 автор: maxim14   (01.04.2011 в 07:07)   письмо автору
 
   для: cheops   (31.03.2011 в 20:57)
 

<?php
  $arr 
file("text.txt"); // тут помещаем текст в переменную
  
$sql = array();  // не понял
  
for($i 0$i count($arr); $i++) // счетчик
  
{
    
$arr[$i] = trim($arr[$i]);
    
$line explode("\t"$arr[$i]); // здесь в переменную line в виде массива заносим текст
    
$sql[] = "('{$line[0]}',
               '
{$line[1]}',
               '
{$line[2]}',
               '
{$line[3]}',
               '
{$line[4]}',
               '
{$line[5]}')"// переменной sql передаем массив line. Я так думаю что тут нужно добавить перенос на следующую строку
  
}
  if(!empty(
$sql))
  {
    
// Формируем SQL-запрос
    
$query "INSERT INTO tbl VALUES ".implode(", "$sql); // с этим вообще завал
    // ...
  
}
?> 


Посмотрите правильно ли?

  Ответить  
 
 автор: Qiyomiddin   (01.04.2011 в 09:06)   письмо автору
 
   для: maxim14   (01.04.2011 в 07:07)
 

в этом кад на какой програма написаем

  Ответить  
 
 автор: cheops   (01.04.2011 в 11:07)   письмо автору
 
   для: maxim14   (01.04.2011 в 07:07)
 

>$sql = array(); // не понял
Объявляем массив для хранения строк в многострочном запросе

// переменной sql передаем массив line. Я так думаю что тут нужно добавить перенос на
//следующую строку
Нет, мы заполняем элементы массива $sql. Выполните следующий код, чтобы посмотреть структуру массива
<?php
  
echo "<pre>";
  
print_r($sql);
  echo 
"</pre>";
?>

>$query = "INSERT INTO tbl VALUES ".implode(", ", $sql); // с этим вообще завал
Здесь мы формируем многострочный INSERT-запрос, который имеет одно ключевое слово INSERT и множество круглых скобок, которые позволяют вставить множество записей за один раз.

  Ответить  
 
 автор: maxim14   (01.04.2011 в 12:56)   письмо автору
 
   для: cheops   (01.04.2011 в 11:07)
 


<?php
  
echo "<pre>";
  
print_r($sql);
  echo 
"</pre>";
?> 


С этим выводит весь массив. Буду пробовать занести это в базу данных

  Ответить  
 
 автор: maxim14   (01.04.2011 в 12:35)   письмо автору
 
   для: maxim14   (01.04.2011 в 07:07)
 


<?

$arr 
file("товары без цены.txt");
  
$sql = array();
   
  for(
$i 0$i count($arr); $i++)
  {
    
$arr[$i] = trim($arr[$i]);
    
$line explode("\t"$arr[$i]);
  
    
$sql[] = "('{$line[0]}',
               '
{$line[1]}',
               '
{$line[2]}',
               '
{$line[3]}',
               '
{$line[4]}',
               '
{$line[5]}',
               '
{$line[6]}',
               )"
;
     }
                
              echo 
"<pre>";
  
print_r($sql);
  echo 
"</pre>"

 
  
   
  if(!empty(
$sql))
  {
    
// Формируем SQL-запрос
    
$query "INSERT INTO apteka_towar (id, code, name, fas, doza, made, made_country) VALUES ".implode(", "$sql);
    
// ...
  
}
 
?> 





Ну не хочет он заносить данные в базу, а на экран выдает правильно

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования