Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ZUCOLLI

[Resolvido] Ler arquivo Excel e gravar no banco de dados

Recommended Posts

Dá uma olhada no arquivo de conexão... está certo?

 

conexao.php

<?php

$hostname_db = "localhost";
$database_db = "csv";
$username_db = "root";
$password_db = "";
$connect_db = mysql_pconnect($hostname_db, $username_db, $password_db) or trigger_error(mysql_error(),E_USER_ERROR);

?>

Eu chamo ele aqui... mas realmente não cadastra!

<?php

        ini_set( 'display_errors', 1 );
        error_reporting( E_ALL );

   # first get a mysql connection as per the FAQ
   
        require_once('conexao.php'); //conexão com BD

        $fcontents = file ('lista.csv'); 
        # expects the csv file to be in the same dir as this script


       // EDITADO AQUI
       echo '$fcontents contém:<br />';
       echo "<pre>";
       print_r( $fcontents );
       echo "</pre>";



       // EDITADO AQUI
       echo 'count( $fcontents ) = ' . count( $fcontents );


        for($i=0; $i<count($fcontents); $i++) { 
                $line = trim($fcontents[$i]); 
                $arr = explode(",", $line); 


               // EDIATDO AQUI
               echo '$arr na iteração ' . $i . ' contém: <br />';
               echo "<pre>";
               print_r( $arr );
               echo "</pre>";


                #if your data is comma separated
                # instead of tab separated, 
                # change the '\t' above to ',' 
          
                $sql = "insert into dados values ('". 
                  implode("','", $arr) ."')"; 
                mysql_query($sql);
                echo $sql ."<br>\n";
                if(mysql_error()) {
                        echo mysql_error() ."<br>\n";
                } 
        }
?>

Não encontro o erro.

 

 

ZUCOLLI

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troquei o método de conexão para o que você falou:

<?php

	$link = mysql_connect('localhost', 'root');
	if (!$link) {
    	die('Não conectado : ' . mysql_error());
	}

	$db_selected = mysql_select_db('csv', $link);
	if (!$db_selected) {
    die ('Não foi possível estabelecer conexão : ' . mysql_error());
	}

        ini_set( 'display_errors', 1 );
        error_reporting( E_ALL );


        $fcontents = file ('lista.csv'); 
        # expects the csv file to be in the same dir as this script


       // EDITADO AQUI
       echo '$fcontents contém:<br />';
       echo "<pre>";
       print_r( $fcontents );
       echo "</pre>";



       // EDITADO AQUI
       echo 'count( $fcontents ) = ' . count( $fcontents );


        for($i=0; $i<count($fcontents); $i++) { 
                $line = trim($fcontents[$i]); 
                $arr = explode(",", $line); 


               // EDIATDO AQUI
               echo '$arr na iteração ' . $i . ' contém: <br />';
               echo "<pre>";
               print_r( $arr );
               echo "</pre>";


                #if your data is comma separated
                # instead of tab separated, 
                # change the '\t' above to ',' 
          
                $sql = "insert into dados values ('". 
                  implode("','", $arr) ."')"; 
                mysql_query($sql);
                echo $sql ."<br>\n";
                if(mysql_error()) {
                        echo mysql_error() ."<br>\n";
                } 
        }
?>

 

E a resposta foi esta:

$fcontents contém:

Array
(
    [0] => Carlos;Zucolli

    [1] => Rene;Freitas

    [2] => Marcos;Gonçalves

)

count( $fcontents ) = 3$arr na iteração 0 contém:

Array
(
    [0] => Carlos;Zucolli
)

insert into dados values ('Carlos;Zucolli')
Column count doesn't match value count at row 1
$arr na iteração 1 contém:

Array
(
    [0] => Rene;Freitas
)

insert into dados values ('Rene;Freitas')
Column count doesn't match value count at row 1
$arr na iteração 2 contém:

Array
(
    [0] => Marcos;Gonçalves
)

insert into dados values ('Marcos;Gonçalves')
Column count doesn't match value count at row 1

Ele não acha a coluna?

 

ZUCOLLI

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo...

 

Achei o erro:

 

Eu substitui a vírgula do implode() por ponto e vírgula e deu certo... Cadastrou!

 

Estava ficando assim: 'Carlos;Zucolli'

E agora fica assim e cadastra: 'Carlos','Zucolli'

 

Muito Obrigado pelo tempo dispensado e a ajuda neste que é só o começo do script.

 

Depois vou fazer um formulário de upload da lista.csv e guardá-la.

 

Vou pesquisar um pouco antes de te encher o saco.

 

Obrigado.

 

ZUCOLLI

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, tenho um trabalho de programacao, tenho um arquivo excel e tenho q passar para o banco de dados mysql, vcs teriam alguma ideia de como fazer isto?Tenho duvidas de como saberemos quais os dados que realmente sao necessarios importar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.