Ir para conteúdo

POWERED BY:

Arquivado

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

mcd more core

Salvando um Loop no BD [ php ]

Recommended Posts

Pessoal, com base em um dúvida que tive e muita ralação e dor de cabeça para resolver o problema, eu decidi colocar aqui como " Salvar um Loop no Banco de Dados php ".

 

Para muitos, isso é muito importante, servi para: " Carrinho de compras, Contatos, Dados, etc".

 

Vamos aos codigos...

 

Index.php

 


// Abaixo coloquei somente dois campos repetidos, mas vale pro mesmo se fizer um loop pegando do banco de dados do PHP e lançando dentro de um FORM.

<form action="loop.php" method="post">
   <input type="text" name="nome[]" /><br />
   <input type="text" name="texto[]" /><br />
   <br>
   <br>
   <input type="text" name="nome[]" /><br/>
   <input type="text" name="texto[]" /><br/>
<input type="submit" name="upload" value="upload" />
</form>

 

Loop.php

 


<?php

// include para conexao com o banco

include("config/conexao.php");

// pega tudo q foi clicando no SUBMIT q tenha o nome ( upload )

if(isset($_POST['upload'])){

// PEGA TUDO DO FORM 

foreach($_POST["nome"] as $key => $error){

// ERRO SE NAO TIVER NENHUM DADO!

if($error == UPLOAD_ERR_OK){

 // FORMS ( POST - TEXTO )

 $nome= $_POST['nome'][$key];
 $texto= $_POST['texto'][$key];


// INSERI OS DADOS NO BANCO

$inserir = mysql_query("INSERT INTO tabela (nome,texto) VALUES ('$nome','$texto')");

echo "O(s) Arquivo(s) $nome foi enviado com sucesso!<br />"; 

 } } } ?>

 

 

 

É isso ai galera, bem simples o codigo porém bastante eficiente. ( Esse é para transferência de ( Input Text ), se quizer colocar o ( Input Text ) com um ( Input File ) fica desse modo abaixo ...

 

 

Index.php

 


// Abaixo coloquei campos ( text e file ) repetidos, mas vale pro mesmo se fizer um loop pegando do banco de dados do PHP e lançando dentro de um FORM.

<form action="loop.php" enctype="multipart/form-data" method="post">
  <input type="file" name="file[]" accept="jpeg|jpg|png|gif"  /><br />
 <input type="file" name="file2[]" accept="jpeg|jpg|png|gif" /><br />
   <input type="text" name="nome[]" /><br />
   <input type="text" name="texto[]" /><br />
   <br>
   <br>
      <input type="file" name="file[]" accept="jpeg|jpg|png|gif" /><br />
 <input type="file" name="file2[]" accept="jpeg|jpg|png|gif" /><br />
   <input type="text" name="nome[]" /><br />
   <input type="text" name="texto[]" /><br />

<input type="submit" name="upload" value="upload" />
</form>

 

 

Loop.php

 


<?php 

// CONEXAO COM O BANCO

include"config/conexao.php";

// PEGA TUDO DO FORM

if(isset($_POST['upload'])){

// PASTA ONDE VAI FICAR OS ARQUIVOS ( FOTOS )

$pasta = 'downloads/';


// LER OS ARQUIVOS VINDO DO $_FILES

foreach($_FILES["file"]["error"] as $key => $error){


// ERRO SE NAO FIVER NENHUM ARQUIVO!

if($error == UPLOAD_ERR_OK){

 // TMP_NAME

$tmp_name = $_FILES["file"]["tmp_name"][$key];
 $tmp_name2 = $_FILES["file2"]["tmp_name"][$key];


// NOME ( com criptografia MD5, caso coloque uma imagem diferente que tenha o mesmo nome, assim nao corre o risco de substituir )

$cod = md5(uniqid(time())) . "_" .$_FILES["file"]["name"][$key];
 $cod2 = md5(uniqid(time())) . "_" .$_FILES["file2"]["name"][$key];

// NOME ANTIGO ARQUIVO ANTES DO MD5

$name = $_FILES["file"]["name"][$key];
 $name2 = $_FILES["file2"]["name"][$key];


// UP DA PASTA

$uploadfile = $pasta . basename($cod);
 $uploadfile2 = $pasta . basename($cod2);

 // FORMS ( POST - TEXTO )

 $nome= $_POST['nome'][$key];
   $texto= $_POST['texto'][$key];

// MOVE_UP PASTA

move_uploaded_file($tmp_name, $uploadfile);
 move_uploaded_file($tmp_name2, $uploadfile2);


// INSERI OS DADOS NO BANCO

$inserir = mysql_query("INSERT INTO fotos (file,nome,texto,file2) VALUES ('$cod','$nome','$texto','$cod2')");

echo "O(s) Arquivo(s) $name,$name2,$cod,$cod2 foi enviado com sucesso!<br />"; 

 } } } ?>

 

 

Qual quer dúvida só falar ai!

 

Boa sorte a todos, e quem gostou posta ai um UP, aceito criticas, sugestões, etc.

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa! bacana mcd

 

veja, é um 'problema' você executar a query dentro do loop, pois assim você está enviando varias requisições ao banco, onde poderia enviar uma só.

 

<?php
if( getEnv('REQUEST_METHOD')=='POST' )
{
//$con = mysql_connect('localhost','root','123');
//mysql_select_db('test',$con);

$values = Array();
for( $i=0; $i<count($_POST['nome']); $i++ )
{
	$values[] = "(NULL, '{$_POST['nome'][$i]}','{$_POST['telefone'][$i]}','{$_POST['endereco'][$i]}')";
}
$value = implode( ',', $values );
$sql = "INSERT INTO `cliente` (`id`, `nome`, `telefone`, `endereco`) VALUES {$value}";

echo $sql;//aqui a query deve ser executada
}
?>

<form action="" method="post">
	Nome: <input type="text" name="nome[]" /><br />
	Telefone: <input type="text" name="telefone[]" /><br />
	Endereço: <input type="text" name="endereco[]" /><br />

	<br />
	Nome: <input type="text" name="nome[]" /><br />
	Telefone: <input type="text" name="telefone[]" /><br />
	Endereço: <input type="text" name="endereco[]" /><br />

	<input type="submit" name="ok" value="ok" />
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interessante, eu tentei aqui funfar com esse codigo mas nao tive resultados, mesmo assim, o loop q fiz la para pegar todos os dados, eu peguei para ele fazer isso mesmo, colocar os produtos separados, cada um em sua ID e TABELA, e quando execulto, ele faz o Loop e adiciona no BD, bem simples, seu codigo ta mas simples que o meu, mas rapido e facil, valeu ai cara.

 

Tamo Aê! :joia:

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.