Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Excel to sql

2.0K
01 мая 2004 года
TimON
26 / / 17.02.2003
Начал изучать php и решил поработать с базами данных. Через phpmyadmin создал базу, и вот тут вопрос:
можно ли занести в базу данные из экселя?

посмотрел в и-нете, но толком не понял реализации этого метода.

не подскажите ли кто-нть пошагово, как это можно сделать, как говориться, на пальцах. Может есть для этого какие-нть проги?

В phpmyadmin я нашёл как внести данные в таблицу из файла, но создать файл не получается, а забивать его ручками не устраивает. Хотелось бы услышать способы заноса данных в готовую таблицу и вариант, когда таблица создаётся на основе экселевского документа.

Заранее спасибо!
2.0K
03 мая 2004 года
TimON
26 / / 17.02.2003
После нескольких бессоных ночей и рысканья по и-нету пришёл к выводу что всё прийдётся делать ручками, вот что из этого получилось:

1. Создал макрос в VB
Dim i As Integer
Open "Date.sql" For Output As #1
i = 8
Do While (Cells(i, 2) <> "")
Print #1, Cells(i, 2); "|"; Cells(i, 3); "|"; Cells(i, 4)
i = i + 1
Loop
Close #1

Здесь читаются данные из столбцов и записываются в файл, из которого будем их брать и вносить в БД.

2. Теперь пишем код на php

$file="Date.sql";

$link = mysql_connect("localhost");
mysql_select_db("base", $link);

if (file_exists($file))
{
$fh=fopen($file, "r");

while (!feof($fh)):

$line=fgets($fh, 4096);

$elements=explode("|", $line);
$i=0;
foreach($elements as $element){
$Str[$i]=$element;
$i++;
}
$sql="INSERT INTO kompl ( name, gar, cena) values ('$Str[0]', '$Str[1]', '$Str[2]')";
mysql_query($sql);
echo $Str[0].'
';
endwhile;
fclose($fh);
}
mysql_close($link);

вроде всё нормально вносится в БД.

3. И вывод из БД

$link = mysql_connect("localhost");
mysql_select_db("base", $link);
$result = mysql_query("SELECT * FROM kompl", $link);
$num_rows = mysql_num_rows($result);
echo "Получено строк: $num_rows\n";
$sql = 'SELECT * FROM kompl WHERE 1';
echo "<table border=0 align=center width=100%>";

for($i=0;$i<$num_rows;$i++)
{
mysql_data_seek($result,$i);
$arr_guest=mysql_fetch_array($result);

echo "<tr bgcolor=$font><td>";
echo "<td >".$arr_guest["name"]."</td>";
echo "<td>".$arr_guest["gar"]."</td>";
echo "<td>".$arr_guest["cena"]."</td>";
mysql_close($link);

А уже от себя при помощи phpmyadmin я собираюсь экспортировать таблицу и загружать её на хост.

Жду ваших замечаний и вот несколько новых вопросов:
после того, как вношу данные 1 раз и отображаю их всё отображается нормально. А вот если очистить БД и внести данные ещё раз, то они начинают отображаться в разноброс.
Вот код очистки:
$link = mysql_connect("localhost");
mysql_select_db("base", $link);
$sql="DELETE FROM kompl WHERE 1";
mysql_query($sql);
Print "Таблица kompl очищена";
mysql_close($link);

Если же делаю какие-нибудь изменения в структуре таблицы через phpmyadmin, то когда вношу данные, опять все нормально, но опять же на один раз:(
1.6K
18 мая 2004 года
Jimmy
58 / / 02.04.2003
То что ты поработал головой - очень хорошо.
А вот теперь найди программу EMS MySQL Manager 2
и не парься больше.

-=J=-
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог