|
 686.4 Кб |
|
| Как из текстового файла перенести данные в базу данных если данные разделены знаком табуляции? | |
|
|
|
|
|
|
|
для: 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);
// ...
}
?>
|
| |
|
|
|
|
|
|
|
для: 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); // с этим вообще завал
// ...
}
?>
|
Посмотрите правильно ли? | |
|
|
|
|
|
|
|
для: maxim14
(01.04.2011 в 07: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 и множество круглых скобок, которые позволяют вставить множество записей за один раз. | |
|
|
|
|
|
|
|
для: cheops
(01.04.2011 в 11:07)
| |
<?php
echo "<pre>";
print_r($sql);
echo "</pre>";
?>
|
С этим выводит весь массив. Буду пробовать занести это в базу данных | |
|
|
|
|
|
|
|
для: 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);
// ...
}
?>
|
Ну не хочет он заносить данные в базу, а на экран выдает правильно | |
|
|
|