Ir para conteúdo

POWERED BY:

Arquivado

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

Márcio Alexandre

Inserir várias colunas no mySQL em quantidade variável

Recommended Posts

Olá, estou desenvolvendo um sistema com o objetivo de gerar uma tabela q exibe todas as pessoas q confirmaram presença para um determinado evento.

Para cada pessoa, crio uma coluna com 23 campos, sendo a primeira a chave primária com valor automático.

 

Preciso criar algo q seja capaz de criar várias colunas de uma só vez, pois o usuário irá gerar uma tabela com os campos a serem preenchidos para aí sim poder inserir os dados de cada coluna, selecionando-os de acordo com a chave primária.

 

Resumindo, preciso saber qual comando/script é necessário para jogar para o mysql mais de uma coluna com apenas uma submissão de formulário.

 

//parece mais um desafio... haha :wacko:

 

Obrigado,

Márcio Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é você criar uma instrução que execute várias inserções, assim:

 

$sql = "INSERT INTO tabela (campo1, campo2, campo3) VALUES ";
$registros = Array();
while (condição)
{
   $registros[] = "(valor1, valor2, valor3)";
}
$sql .= implode(', ', $registros);
echo $sql;

Executar comandos SQL em loops causa uma sobrecarga maior do que executar uma instrução apenas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, acho deixa-me mostrar aqui os códigos para tentar esclarecer melhor o meu caso, se eu estiver equivocado, por favor me falem! :rolleyes:

 

olhem a estrutura do mySQL:

(qdt) | evento | tratamento | nome | grupo | tel | email | conv | pessoas | secretaria | site //e outros muitos

_ 1__|_teste__|_Sr._______|__01_ |__1___| XX |_ XX_|__2__|__2_____|___ 1_____| 0

_ 2__|_teste__|_Sra.______|__02_ |__1___| XX |_ XX_|__2__|__2_____|___ 1_____| 0

_ 3__|_teste__|_Sr._______|__01_ |__1___| XX |_ XX_|__2__|__2_____|___ 1_____| 0

 

Bom, apartir disto, pode-se observar que o campo qdt é o chave com auto_increment, o valor de evento - teste - é padrão, e q para cada pessoa, um novo valor.

 

PORÉM... os campos não serão preenchidos lodo de primeira... ficará assim: ( claro, no caso da quantidade 3! )

 

(qdt) | evento | tratamento | nome | grupo | tel | email | conv | pessoas | secretaria | site //e outros muitos

1 |_teste__ |__________|______|______|___|_____|_____ |_______ |__________|

2 |_teste__ |__________|______|______|___|_____|_____ |_______ |__________|

3 |_teste__ |__________|______|______|___|_____|_____ |_______ |__________|

 

Isto porquê depois das colunas criadas e nulas, irei editá-las em outra página com campos de formulário, selecionando os campos pela chave qdt.

 

Resumindo, como fazer com que o mysql receba por exemplo 20 colunas NULAS de uma só vez, para depois editá-las?

estou meio enrolado aqui, porque nunca tive aula de php na verdade, só aprendo aqui no imasters ou em apostilas e scripts, então não sei os "nomes dos termos" corretos.. http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

Já tentei inserir apenas uma coluna e funcionou, o meu problema está realmente para gerar vários..

 

arrisquei com uma classe, mas não funcionou não..

<?php
require("conectdb.php");

	class colunas{
	function db(){
$sql = 'INSERT INTO `evento` (`qdt`, `evento`, `tratamento`, `nome`, `n_conv`, `acp`, `grupo`, `tel`, `email`, `conv`, `pessoas`, `secretaria`, `site`, `a_lig_atv`, `a_lig_um`, `a_lig_um_min`, `a_lig_um_status`, `a_lig_dois`, `a_lig_dois_min`, `a_lig_dois_status`, `a_lig_tres`, `a_lig_tres_min`, `a_lig_tres_status`) VALUES (NULL, \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\', \'\');';

mysql_query($sql) or die ("não foi possível inserir");

}
function quantidade(){

		$quantidade = "5"; // na verdade vem de um formulário... mas é só teste!
		for($i = 1; $i <= $quantidade; ++$i){ 
			$cdb=new colunas;
			$cdb->db();

			}
		 } 
		}
	
	$colunas=new colunas;
	$colunas->quantidade();
?>

Marcio Leandro, não entendi bem como você usou Array e a condição de While, se pode ser aplicado no meu código, conto com você, chará! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

tente me explicar na boa,,, até+ http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

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

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.