Artiom Опубликовано 16 марта, 2007 Жалоба Поделиться Опубликовано 16 марта, 2007 Привет, у меня есть ОГРОМНАЯ таблица в Excel :( , пропечатать вручную просто не реально, :) возможно ли импортировать её в БД MySQL?? Заранее благодарен. :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 16 марта, 2007 Жалоба Поделиться Опубликовано 16 марта, 2007 Експортироваеш из 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 Ссылка на комментарий Поделиться на другие сайты Поделиться
Artiom Опубликовано 16 марта, 2007 Автор Жалоба Поделиться Опубликовано 16 марта, 2007 Конечно спасибо, но вот чё-то не получается, :) вот что я прописал: <?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);?> может я чё не понял, обьясни пожалуйста что не так? Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 16 марта, 2007 Жалоба Поделиться Опубликовано 16 марта, 2007 Во первих не нужно пользуват mysql_db_query ( у него первий параметер имя БД а не сам запрос ) Во вторих, замени его на mysql_query( $sql ) or die ( mysql_error() ); Ссылка на комментарий Поделиться на другие сайты Поделиться
Artiom Опубликовано 16 марта, 2007 Автор Жалоба Поделиться Опубликовано 16 марта, 2007 Заменил, всё равно не пашет... ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 16 марта, 2007 Жалоба Поделиться Опубликовано 16 марта, 2007 Что пишеть? Ссылка на комментарий Поделиться на другие сайты Поделиться
Artiom Опубликовано 16 марта, 2007 Автор Жалоба Поделиться Опубликовано 16 марта, 2007 вот что пишет: Column count doesn't match value count at row 1 Убрал or die ( mysql_error() ); вообще перестал что либо писать ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 16 марта, 2007 Жалоба Поделиться Опубликовано 16 марта, 2007 Покажи первий ряд из csv файла или замени mysql_error() на $sql и покажи что пишет Ссылка на комментарий Поделиться на другие сайты Поделиться
Artiom Опубликовано 16 марта, 2007 Автор Жалоба Поделиться Опубликовано 16 марта, 2007 INSERT INTO 10c_r (Country, cod, prefix, rate) VALUES ('MOLDOVA,2020,575,494, ') Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 16 марта, 2007 Жалоба Поделиться Опубликовано 16 марта, 2007 (изменено) Понял, должно быт 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);?> Удачи! Изменено 16 марта, 2007 пользователем Darhazer Ссылка на комментарий Поделиться на другие сайты Поделиться
Artiom Опубликовано 16 марта, 2007 Автор Жалоба Поделиться Опубликовано 16 марта, 2007 мне очень жаль но не работает... вот что выводит 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] Ссылка на комментарий Поделиться на другие сайты Поделиться
Artiom Опубликовано 16 марта, 2007 Автор Жалоба Поделиться Опубликовано 16 марта, 2007 НЕ ПОВЕРИШЬ, НО У МЕНЯ ПОЛУЧИЛОСЬ!!! :) ВОТ ИСХОДНИК: <?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 в коней каждой стороки заносится ; Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти