Jump to content


Rodrigo Motta1

Member Since 26/09/2011
Offline Last Active 30/04/2013, 17:41
-----

Posts I've Made

In Topic: Inserir Dados No Mysql Atraves De Um Arquivo Txt

30/04/2013, 16:51



Tente esse script:

<?php
$file = 'arquivo.txt';

$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('mysql');

$lines = file($file);

for($c = 0; $line = $lines[$c]; $c++){
	$line = trim($line);
	$parts = explode(',', $line);
	
	$start = $parts[0];
	$end = str_replace('"', '', $parts[1]);
	$code_2 = str_replace('"', '', $parts[2]);
	$code_3 = str_replace('"', '', $parts[3]);
	$name = str_replace('"', '', $parts[4]);
	
	$sql = "INSERT INTO tabela ('inicio', 'final', 'code_2', 'code_3', 'nome') VALUES ('".$start."', '".$end."', '".$code_2."', '".$code_3."', '".$name."');";
	mysql_query($sql);
	
	echo $sql . '<br>';
}
?>


Boa tarde a todos, mas gostaria de saber como fica o código se for varios arquivos txt com nomes aleatórios. tipo ele teria que ler na pasta todos os txt, gravar no banco conforme já está no script aqui, e depois apagar o txt. como ficaria? Obrigado a todos.


Bom, a lógica é a mesma.
A única coisa que mudaria, é que esse script ficaria dentro de um LOOP que varreria os TXTs de um diretório.

Um exemplo:


<?php
$diretorio = './txts/';

foreach(glob($diretorio . "*.txt") as $file) {

	//$file = 'arquivo.txt';
	
	$conn = mysql_connect('localhost', 'root', '');
	mysql_select_db('mysql');
	
	$lines = file($file);
	
	for($c = 0; $line = $lines[$c]; $c++){
		$line = trim($line);
		$parts = explode(',', $line);
		
		$start = $parts[0];
		$end = str_replace('"', '', $parts[1]);
		$code_2 = str_replace('"', '', $parts[2]);
		$code_3 = str_replace('"', '', $parts[3]);
		$name = str_replace('"', '', $parts[4]);
		
		$sql = "INSERT INTO tabela ('inicio', 'final', 'code_2', 'code_3', 'nome') VALUES ('".$start."', '".$end."', '".$code_2."', '".$code_3."', '".$name."');";
		mysql_query($sql);
		
		echo $sql . '<br>';
	}
	unlink($file);
}
?>

Veja mais sobre as funções glob(), foreach() e unlink().
Qualquer dúvida poste!

Até!


está me retornando um erro:

Notice: Undefined offset: 3 in H:\xampp\htdocs\importar\importar2.php on line 13

o que pode ser?

De uma olhada como está o meu php e txt que estão dando erro.

php:
<?php
$diretorio = './txt/';

foreach(glob($diretorio . "*.txt") as $file) {

        //$file = 'arquivo.txt';
        
		$conn = mysql_connect('localhost', 'root', 'senha');
mysql_select_db('test');
        
        $lines = file($file);
        
        for($c = 0; $line = $lines[$c]; $c++){
                $line = trim($line);
                $parts = explode(',', $line);
                
        $nomeT = str_replace('"', '', $parts[0]);
        $idadeT = str_replace('"', '', $parts[1]);
        $textoT = str_replace('"', '', $parts[2]);
                
                $sql = "INSERT INTO importar ('nome', 'idade', 'texto') VALUES ('".$nomeT."', '".$idadeT."', '".$textoT."');";
                mysql_query($sql);
                
                echo $sql . '<br>';
        }
        //unlink($file);
}
?>

txt:
"rodrigo1","11","teste1 teste1 teste 1"
"rodrigo2","22","teste2 teste2 teste 2"
"rodrigo3","33","teste3 teste3 teste 3"

resultado:
INSERT INTO importar ('nome', 'idade', 'texto') VALUES ('rodrigo1', '11', 'teste1 teste1 teste 1');
INSERT INTO importar ('nome', 'idade', 'texto') VALUES ('rodrigo2', '22', 'teste2 teste2 teste 2');
INSERT INTO importar ('nome', 'idade', 'texto') VALUES ('rodrigo3', '33', 'teste3 teste3 teste 3');

Notice: Undefined offset: 3 in H:\xampp\htdocs\importar\importar2.php on line 13

In Topic: Inserir Dados No Mysql Atraves De Um Arquivo Txt

30/04/2013, 13:12

Tente esse script:

<?php
$file = 'arquivo.txt';

$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('mysql');

$lines = file($file);

for($c = 0; $line = $lines[$c]; $c++){
	$line = trim($line);
	$parts = explode(',', $line);
	
	$start = $parts[0];
	$end = str_replace('"', '', $parts[1]);
	$code_2 = str_replace('"', '', $parts[2]);
	$code_3 = str_replace('"', '', $parts[3]);
	$name = str_replace('"', '', $parts[4]);
	
	$sql = "INSERT INTO tabela ('inicio', 'final', 'code_2', 'code_3', 'nome') VALUES ('".$start."', '".$end."', '".$code_2."', '".$code_3."', '".$name."');";
	mysql_query($sql);
	
	echo $sql . '<br>';
}
?>


Boa tarde a todos, mas gostaria de saber como fica o código se for varios arquivos txt com nomes aleatórios. tipo ele teria que ler na pasta todos os txt, gravar no banco conforme já está no script aqui, e depois apagar o txt. como ficaria? Obrigado a todos.

IPB Skin By Virteq