Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Из таблицы Excel ---> MySQL?


Рекомендуемые сообщения

Привет, у меня есть ОГРОМНАЯ таблица в Excel :( , пропечатать вручную просто не реально, :) возможно ли импортировать её в БД MySQL?? :doh:

Заранее благодарен.

:)

Ссылка на комментарий
Поделиться на другие сайты

Експортироваеш из Excel в CSV а потом импортируеш через PHP скрипт

из Excel:

File->Save As-> Save As Type: CSV

Потом:

<?$f = fopen($filename, 'r');while ( $line = fgets($f) ){$fields = explode(";", $line); $values = implode(',', $fields);$sql = 'INSERT INTO '.$table_name.' VALUES('.$values.')';}fclose($f);?>

Конечно в скрипт нужно добавить связ к серверу MySQL и определить значения table_name и filename

Ссылка на комментарий
Поделиться на другие сайты

Конечно спасибо, но вот чё-то не получается, :)

вот что я прописал:

<?php$db_user='root';$db_host='localhost';$db_password='';$db_name='matuhDB';$connection = mysql_connect ($db_host, $db_user, $db_password) or die ("error connecting");mysql_select_db($db_name, $connection);  $filename='1.csv';$f = fopen($filename, 'r');while ( $line = fgets($f) ){$fields = explode(";", $line); $values = implode(',', $fields);$sql = 'INSERT INTO 10c_r (Country, cod, prefix, rate) VALUES ('.$values.')';mysql_db_query($sql, $connection);}fclose($f);?>

может я чё не понял, обьясни пожалуйста что не так?

Ссылка на комментарий
Поделиться на другие сайты

Во первих не нужно пользуват mysql_db_query ( у него первий параметер имя БД а не сам запрос )

Во вторих, замени его на

mysql_query( $sql ) or die ( mysql_error() );
Ссылка на комментарий
Поделиться на другие сайты

Покажи первий ряд из csv файла или замени mysql_error() на $sql и покажи что пишет

Ссылка на комментарий
Поделиться на другие сайты

Понял, должно быт VALUES ( $values )

Если не подходить, вот это должно работать

<?php$db_user='root';$db_host='localhost';$db_password='';$db_name='matuhDB';$connection = mysql_connect ($db_host, $db_user, $db_password) or die ("error connecting");mysql_select_db($db_name, $connection);  $filename='1.csv';$f = fopen($filename, 'r');while ( $line = fgets($f) ){$fields = explode(";", $line);$sql = sprintf("INSERT INTO 10c_r (`Country`, `cod`, `prefix`, `rate`) VALUES ( '%s', %d, %d, %d  )", $fields[0], $fields[1],$fields[2],$fields[3] );mysql_query($sql) or die ( mysql_error() );}fclose($f);?>

Удачи!

Изменено пользователем Darhazer
Ссылка на комментарий
Поделиться на другие сайты

мне очень жаль но не работает...

вот что выводит

Notice: Undefined offset: 2 in w:\home\localhost\www\import.php on line 18

Notice: Undefined offset: 3 in w:\home\localhost\www\import.php on line 18

INSERT INTO 10c_r ('Country', 'cod', 'prefix', 'rate') VALUES ( MOLDOVA,2020,575,494, 0, 0, 0 )[/b]

Ссылка на комментарий
Поделиться на другие сайты

:bye1::1eye: НЕ ПОВЕРИШЬ, НО У МЕНЯ ПОЛУЧИЛОСЬ!!! :)

ВОТ ИСХОДНИК:

<?php$db_user='root';$db_host='localhost';$db_password='';$db_name='matuhDB';$connection = mysql_connect ($db_host, $db_user, $db_password) or die ("error connecting");mysql_select_db($db_name, $connection);  $filename='10c.csv';$f = fopen($filename, 'r');while ( $line = fgets($f) ){$fields = explode(";", $line,4); $values = implode("','", $fields);$sql = "INSERT INTO 10c_r (Country, cod, prefix, rate) VALUES ('$values')";mysql_query($sql, $connection) or die(mysql_error());}fclose($f);?>

;)

только вот осталась проблемка в mysql в коней каждой стороки заносится ;

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...