|
автор: новичек (22.07.2005 в 23:33) |
|
| подскажите, можно ли екселовский файл переконвертировать в SQL ? | |
|
|
|
|
|
|
|
для: новичек
(22.07.2005 в 23:33)
| | Обычно Excel-ский файл сохраняют как CSV-файл, который затем разбирают средствами PHP, как это описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4843. | |
|
|
|
|
автор: новичек (23.07.2005 в 21:09) |
|
|
для: cheops
(23.07.2005 в 01:18)
| | сделал как написано в темах
создал текстовый файл, даже что бы все было как там прокомментировал строки
вот такого вида он
носов, незнайка, // nnn
лермонтов, поэма, //nnn
пушкин, стихи, //nnn
|
структура таблицы
CREATE TABLE 'liter' (
'id' int(11) NOT NULL auto_increment,
'avtor' text NOT NULL,
'name' text NOT NULL,
UNIQUE KEY 'id' ('id')
) AUTO_INCREMENT=1 ;
|
создал файл sq.php как было написано в одной из тем
<?php
// Устанавливаем соединение с базой данных
include "function.inc.php";
// Помещаем содержимое файла в массив $arr
// Одна строка файла - один элемент массива
$arr = file("text.txt");
// В цикле производим разбор каждой строки
// формируем многострочный INSERT-запрос
$sql = "INSERT INTO liter VALUES ";
$i = 1;
foreach($arr as $line)
{
// Разбиваем строку по запятой
$number = explode(",",$line);
// Уничтожаем последний элмемент с комментарием
// unset($number[2]);
// Формируем строку многострочного INSERT (1,2,...,10)
$order = "($i,";
foreach($number as $num)
{
$order .= "$num,";
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$order = substr($order,0,strlen($order) - 1).")";
$sql .= "$order,";
$i++;
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$sql = substr($sql,0,strlen($sql) - 1);
// Выполняем SQL-запрос
if(!mysql_query($sql))
{
echo $sql."<br>";
echo "Ошибка - ".mysql_error();
}
?>
|
запускаю и нечего нет
не выдает ни ошибок ни заносит данные в БД
подскажите, что не так ? | |
|
|
|
|
|
|
|
для: новичек
(23.07.2005 в 21:09)
| | Так как у вас строки, то значение $num в переменной $order должно быть заключены в одиночные кавычки. Т.е. скрипт следует переписать следующим образом
<?php
// Устанавливаем соединение с базой данных
include "function.inc.php";
// Помещаем содержимое файла в массив $arr
// Одна строка файла - один элемент массива
$arr = file("text.txt");
// В цикле производим разбор каждой строки
// формируем многострочный INSERT-запрос
$sql = "INSERT INTO liter VALUES ";
$i = 1;
foreach($arr as $line)
{
// Разбиваем строку по запятой
$number = explode(",",$line);
// Уничтожаем последний элмемент с комментарием
unset($number[2]);
// Формируем строку многострочного INSERT (1,2,...,10)
$order = "($i,";
foreach($number as $num)
{
$order .= "'$num',";
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$order = substr($order,0,strlen($order) - 1).")";
$sql .= "$order,";
$i++;
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$sql = substr($sql,0,strlen($sql) - 1);
echo $sql;
// Выполняем SQL-запрос
if(!mysql_query($sql))
{
echo $sql."<br>";
echo "Ошибка - ".mysql_error();
}
?>
|
Причём следует раскомментировать строку unset($number[2]), иначе комментарии будут тоже добавляться в запрос. Результатом этого скрипта будет запрос
INSERT INTO liter VALUES (1,'носов',' незнайка'),(2,'лермонтов',' поэма'),(3,'пушкин',' стихи')
|
| |
|
|
|
|
автор: новичек (24.07.2005 в 00:42) |
|
|
для: cheops
(23.07.2005 в 23:55)
| | поставил
не работает :( | |
|
|
|
|
|
|
|
для: новичек
(24.07.2005 в 00:42)
| | Вывидите запрос в окно браузера и попробуйте выполнить его в другом клиенте, например в phpMyAdmin. | |
|
|
|
|
автор: новичек (24.07.2005 в 12:45) |
|
|
для: cheops
(24.07.2005 в 12:29)
| | извините, не понял
какой запрос ввести в браузер ? | |
|
|
|
|
|
|
|
для: новичек
(24.07.2005 в 12:45)
| | SQL-запрос, который формирует скрипт
| |
|
|
|