Ir para conteúdo
Fórum Script Brasil
  • 0

Inserir registros de todas as linhas do arquivo txt no banco de dados mysql


emmanuelsiqueira30

Pergunta

Bom dia pessoal, estou com um problema que é o seguinte tenho 3 arquivos php, 1 para receber os dados via post o insbl.php pelo arquivo cadbl.php e o exportabl.php que serve para enviar os arquivos do arquivo txt para o banco de dados, porém ao executar o arquivo expórtarbl.php somente é salvo no banco de dados a primeira linha e não são salvas as outras linhas dentro do arquivo txt, se alguém puder me ajudar desde já fico muito agradecido.

insbl.php
 

<?php

	session_start();
	
	   	$cod_mun_bl = $_POST['cod_mun_bl'];
		$uso_proc_data_alt = date('Y-m-d');
		$bairro_id_bl = $_POST['bairro_id_bl'];
		$distrito_bl = $_POST['distrito_bl'];
		$setor_bl = $_POST['setor_bl'];
		$secao_bl = $_POST['secao_bl'];
		$cep_bl = $_POST['cep_bl'];
		$cod_logra_bl = $_POST['cod_logra_bl'];
		$logra_bl = $_POST['logra_bl'];
		$num_de_bl = $_POST['num_de_bl'];
		$num_ate_bl = $_POST['num_ate_bl'];
		$data_bl = $_POST['data_bl'];
		$valor_bl = $_POST['valor_bl'];
		$coleta_lixo_bl = $_POST['coleta_lixo_bl'];
		$limp_pub_bl = $_POST['limp_pub_bl'];
		$ilum_pub_bl = $_POST['ilum_pub_bl'];
		$ener_eletr_bl = $_POST['ener_eletr_bl'];
		$rede_tel_bl = $_POST['rede_tel_bl'];
		$rede_agua_pot_bl = $_POST['rede_agua_pot_bl'];
		$rua_pav_bl = $_POST['rua_pav_bl'];
		$rede_esg_bl = $_POST['rede_esg_bl'];
		$rede_agua_pluv_bl = $_POST['rede_agua_pluv_bl'];
		$rua_placa_bl = $_POST['rua_placa_bl'];
		$quant_esquina_bl = $_POST['quant_esquina_bl'];
		$n_lei_bl = $_POST['n_lei_bl'];
		$data_cad_bl =  date('Y-m-d');
		$ass_bl = $_SESSION['usuario'];
		$obs_bl = $_POST['obs_bl'];
						
		//PREPARA O CONTEÚDO A SER GRAVADO
		$conteudo =	"
$cod_mun_bl,$uso_proc_data_alt,$bairro_id_bl,$distrito_bl,$setor_bl,$secao_bl,$cep_bl,$cod_logra_bl,$logra_bl,$num_de_bl,$num_ate_bl,$data_bl,$valor_bl,$coleta_lixo_bl,$limp_pub_bl,$ilum_pub_bl,$ener_eletr_bl,$rede_tel_bl,$rede_agua_pot_bl,$rua_pav_bl,$rede_esg_bl,$rede_agua_pluv_bl,$rua_placa_bl,$quant_esquina_bl,$n_lei_bl,$data_cad_bl,$ass_bl,$obs_bl\r \n";

		//ARQUIVO TXT
		$arquivo = "regbl.txt";

		//TENTA ABRIR O ARQUIVO TXT
		if (!$abrir = fopen($arquivo, "a+",0)) {
				echo  "Erro abrindo arquivo local ($arquivo)";
				exit;
		   }

		//ESCREVE NO ARQUIVO TXT
		if (!fwrite($abrir, $conteudo, strlen($conteudo))) {
			echo "<script>alert('Erro ao cadastrar - ($arquivo)'); location='cadbl.php';</script>";
			exit;
		   }
		else {
			echo "<script>alert('Cadastro realizado com sucesso.'); location='cadbl.php';</script>";
		}

		//FECHA O ARQUIVO 
		fclose($abrir);
?>

 

cadbl.php

<!DOCTYPE html>
<html>
<head>

<?php
include("sessao.php");
?>

	<title>Boletim de Logradouros - BL</title>
	
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
</head>
<body>

<?php
   include("menu.php");
?>

	<div class="container-fluid">
		
		<div class="form-row">
			
			<div class="panel panel-default form-group col-xs-12">
				<form action="insbl.php" method="post" enctype="multipart/form-data">

					<p><h2>Boletim de Logradouros - BL</h2></p>
			    
			     	<br/>
					
					<fieldset>
						<legend>PARA USO DO PROCESSAMENTO</legend>
							<div class="form-group form-inline">
								<label for="cod_mun_bl">Código do munícipio: </label>
								<input type="text" class="form-control " name="cod_mun_bl" placeholder="Código do munícipio" required>
								
							</div>
					</fieldset>
					
					<fieldset>
						<legend>INFORMAÇÕES GERAIS</legend>		      	  
							<div class="form-group">
								
								<input type="text" class="form-control" name="textbox" id="textbox" placeholder="Digite o bairro">					
								<label for="bairro_id_bl">Bairro: </label>
								<select class="form-control" name="bairro_id_bl" id="select">
									<?php
										include ("conexao.php");
										$query = "SELECT * FROM bairros";
										$consulta = mysqli_query($con,$query); 

										while ($dados = mysqli_fetch_assoc($consulta)) { ?>
											<option value="<?php echo $dados['id_bairros']; ?>"><?php echo $dados['nome_bairros']; ?></option> <?php 
										}
									?>
								</select>
								
								<div class="form-inline">
									<label for="distrito_bl">Distrito: </label>
									<input type="text" class="form-control" name="distrito_bl" placeholder="Distrito" required>
									
									<label for="setor_bl">Setor: </label>
									<input type="text" class="form-control" name="setor_bl" placeholder="Setor" required>
									
									<label for="secao_bl">Seção: </label>
									<input type="text" class="form-control" name="secao_bl" placeholder="Seção" required>
									
									<label for="cep_bl">CEP: </label>
									<input type="text" class="form-control" name="cep_bl" placeholder="Código de logradouro" required>
									
									<label for="cod_logra_bl">Código de logradouro: </label>
									<input type="text" class="form-control" name="cod_logra_bl" placeholder="Código de logradouro" required>
									
									<label for="logra_bl">Logradouro: </label>
									<input type="text" class="form-control" name="logra_bl" placeholder="Logradouro" required>
									
									<div class="form-inline">
										de <input type="text" class="form-control" name="num_de_bl" required> até <input type="text" class="form-control" name="num_ate_bl" required>
									</div>
									
								</div>
							</div>
					</fieldset>
						  
					<div class="form-group form-inline">
						<label for="data_bl">Data: </label>
						<input type="date" class="form-control" name="data_bl" placeholder="Data" required>
								
						<label for="valor_bl">Valor: </label>
						<input type="text" class="form-control" name="valor_bl" placeholder="Setor anterior" required>
								
						<label for="coleta_lixo_bl">Coleta de lixo</label>
						<select class="form-control" name="coleta_lixo_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="limp_pub_bl">Limpeza pública</label>
						<select class="form-control" name="limp_pub_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="ilum_pub_bl">Iluminação pública</label>
						<select class="form-control" name="ilum_pub_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="ener_eletr_bl">Energia Elétrica</label>
						<select class="form-control" name="ener_eletr_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="rede_tel_bl">Rede de telefone</label>
						<select class="form-control" name="rede_tel_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="rede_agua_pot_bl">Rede de água potável</label>
						<select class="form-control" name="rede_agua_pot_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="rua_pav_bl">Rua pavimentada</label>
						<select class="form-control" name="rua_pav_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="rede_esg_bl">Rede de esgoto</label>
						<select class="form-control" name="rede_esg_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="rede_agua_pluv_bl">Rede de esgoto</label>
						<select class="form-control" name="rede_agua_pluv_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="rua_placa_bl">Rua com placa</label>
						<select class="form-control" name="rua_placa_bl">
							<option value=" "> </option>
							<option value="Sim">Sim</option>
							<option value="Não">Não</option>
						</select>
						
						<label for="quant_esquina_bl">Quantidade de esquinas: </label>
						<input type="text" class="form-control" name="quant_esquina_bl" placeholder="Quantidade de esquinas" required>
						
						<label for="n_lei_bl">Número da Lei/Denominação: </label>
						<input type="text" class="form-control" name="n_lei_bl" placeholder="Número da Lei/Denominação" required>
						
					</div>
								
						<label for="obs_bl">Observações: </label>
						<input type="areatext" class="form-control" name="obs_bl">
					</div>
					<button type="submit" name="cadastrar" id="cadastrar" class="btn btn-primary">Cadastrar</button>
	  					
				
			</form>
			</div>
		</div>
		
	</div>

<script>
jQuery.fn.filterByText = function(textbox, selectSingleMatch) {
        return this.each(function() {
            var select = this;
            var options = [];
            $(select).find('option').each(function() {
                options.push({value: $(this).val(), text: $(this).text()});
            });
            $(select).data('options', options);
            $(textbox).bind('change keyup', function() {
                var options = $(select).empty().data('options');
                var search = $(this).val().trim();
                var regex = new RegExp(search,"gi");
              
                $.each(options, function(i) {
                    var option = options[i];
                    if(option.text.match(regex) !== null) {
                        $(select).append(
                           $('<option>').text(option.text).val(option.value)
                        );
                    }
                });
                if (selectSingleMatch === true && $(select).children().length === 1) {
                    $(select).children().get(0).selected = true;
                }
            });            
        });
    };

    $(function() {
        $('#select').filterByText($('#textbox'), false);
      $("select option").click(function(){
        alert(1);
      });
    });
</script>

</body>
</html>

 

exportabl.php

<?php

	include("conexao.php");
	
	$arquivo = fopen("regbl.txt","r");

		//Remove quebra de linha que vem no fgets
$linhas = fgets($arquivo);

//Divide em um array
$colunas = explode(',', $linhas);

//Passa os valores como 
foreach ($colunas as &$coluna) {
     //Escapa o valor de cada coluna, como é referencia vai aplicar diretamente a array
     $coluna = mysqli_real_escape_string($con, $coluna);
	 
	 //Junta os valores da array de volta em um string e aplica as aspas simples
$linhas = '\'' . implode('\', \'', $colunas) . '\'';

$sql = "INSERT INTO bl (cod_mun_bl,uso_proc_data_alt,bairro_id_bl,distrito_bl,setor_bl,secao_bl,cep_bl,cod_logra_bl,logra_bl,num_de_bl,num_ate_bl,data_bl,valor_bl,coleta_lixo_bl,
limp_pub_bl,ilum_pub_bl,ener_eletr_bl,rede_tel_bl,rede_agua_pot_bl,rua_pav_bl,rede_esg_bl,rede_agua_pluv_bl,rua_placa_bl,quant_esquina_bl,n_lei_bl,data_cad_bl,ass_bl,obs_bl) 
VALUES ($linhas)";

}

$result = mysqli_query($con, $sql);

			
			if ($result) {
					echo "<script>alert('Cadastro realizado com sucesso.'); location='./cadbl.php';</script>";
				} else {
					echo "<script>alert('Erro ao cadastrar.'); </script>";
				}
				
				$erro = mysqli_error($con);
				echo $erro;
				
				echo $sql;
			
			$con->close();	
?>

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá!

O sr. precisa montar a string de forma que cada linha fique entre parêntesis, separadas por vírgula, tipo assim:
... VALUES ($linha1), ($linha2), ($linha3)...

 

Eu leria o arquivo .txt com file($arquivo, FILE_SKIP_EMPTY_LINES );
Já retornará um array contendo cada linha em um índice.

Depois, é só percorrer esse array, tratando os valores separados por vírgula, e montar  cada linha dentro de seus respectivos parêntesis.

Editado por wash
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...