Ir para conteúdo

POWERED BY:

Arquivado

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

11closed

[Resolvido] Diminuir codigo

Recommended Posts

ola

 

fis um codigo aq para validar campos, so que ele esta muito grande, gostaria de saber se a alguma forma de diminuir ele sem que ele mude os resultados

 

olha o codigo, vo coloqua ate o 5 mais aq no meu é ate o numero 50

 

Quantos *: <select name="qtsparts" id="qtsparts" onchange="ChamarInputs(); Somar();">                                  
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
     </select>
     <li id="part1" style="display:none;">Nome 1*:<input type="text" id="inputvazil" name="part1"> </input></li>
     <li id="part2" style="display:none;">Nome 2*:<input type="text" id="inputvazil" name="part2"> </input></li>
     <li id="part3" style="display:none;">Nome 3*:<input type="text" id="inputvazil" name="part3"> </input></li>
     <li id="part4" style="display:none;">Nome 4*:<input type="text" id="inputvazil" name="part4"> </input></li>
     <li id="part5" style="display:none;">Nome 5*:<input type="text" id="inputvazil" name="part5"> </input></li>
php

$acao = $_GET["acao"];

if ($acao == "cadastro") {
$qtsparts = $_POST["qtsparts"];
 $part1 = $_POST["part1"];
 $part2 = $_POST["part2"];
 $part3 = $_POST["part3"];
 $part4 = $_POST["part4"];
 $part5 = $_POST["part5"];

if($qtsparts == ""){
	$erro[9] = "O Formulário Quantos é obrigatório </br>";
 }
 if($qtsparts == "1"){
  if ($part1 == "") {
   $erro[10] = "O Formulário Nome 1 é obrigatório </br>";
  }
 }
 if($qtsparts == "2"){
  if ($part1 == "") {
   $erro[10] = "O Formulário Nome 1 é obrigatório </br>";
  }
  if ($part2 == "") {
   $erro[11] = "O Formulário Nome 2 é obrigatório </br>";
  }
  if ($part1 == $part2 && $part1 != "") {
   $erro[12] = "O Nome 1 tem que ser diferente do Nome 2 </br>";
  }
 }
 if($qtsparts == "3"){
  if ($part1 == "") {
   $erro[10] = "O Formulário Nome 1 é obrigatório </br>";
  }
  if ($part2 == "") {
   $erro[11] = "O Formulário Nome 2 é obrigatório </br>";
  }
  if ($part3 == "") {
   $erro[12] = "O Formulário Nome 3 é obrigatório </br>";
  }
  if ($part1 == $part2 && $part1 != "") {
   $erro[13] = "O Nome 1 tem que ser diferente do Nome 2 </br>";
  }
  if ($part1 == $part3 && $part1 != "") {
   $erro[14] = "O Nome 1 tem que ser diferente do Nome 3 </br>";
  }
  if ($part2 == $part3 && $part2 != "") {
   $erro[15] = "O Nome 2 tem que ser diferente do Nome 3 </br>";
  }
 }
 if($qtsparts == "4"){
  if ($part1 == "") {
   $erro[10] = "O Formulário Nome 1 é obrigatório </br>";
  }
  if ($part2 == "") {
   $erro[11] = "O Formulário Nome 2 é obrigatório </br>";
  }
  if ($part3 == "") {
   $erro[12] = "O Formulário Nome 3 é obrigatório </br>";
  }
  if ($part4 == "") {
   $erro[13] = "O Formulário Nome 4 é obrigatório </br>";
  }
  if ($part1 == $part2 && $part1 != "") {
   $erro[14] = "O Nome 1 tem que ser diferente do Nome 2 </br>";
  }
  if ($part1 == $part3 && $part1 != "") {
   $erro[15] = "O Nome 1 tem que ser diferente do Nome 3 </br>";
  }
  if ($part1 == $part4 && $part1 != "") {
   $erro[16] = "O Nome 1 tem que ser diferente do Nome 4 </br>";
  }
  if ($part2 == $part3 && $part2 != "") {
   $erro[17] = "O Nome 2 tem que ser diferente do Nome 3 </br>";
  }
  if ($part2 == $part4 && $part2 != "") {
   $erro[18] = "O Nome 2 tem que ser diferente do Nome 4 </br>";
  }
  if ($part3 == $part4 && $part3 != "") {
   $erro[19] = "O Nome 3 tem que ser diferente do Nome 4 </br>";
  }
 }
 if($qtsparts == "5"){
  if ($part1 == "") {
   $erro[10] = "O Formulário Nome 1 é obrigatório </br>";
  }
  if ($part2 == "") {
   $erro[11] = "O Formulário Nome 2 é obrigatório </br>";
  }
  if ($part3 == "") {
   $erro[12] = "O Formulário Nome 3 é obrigatório </br>";
  }
  if ($part4 == "") {
   $erro[13] = "O Formulário Nome 4 é obrigatório </br>";
  }
  if ($part5 == "") {
   $erro[14] = "O Formulário Nome 5 é obrigatório </br>";
  }
  if ($part1 == $part2 && $part1 != "") {
   $erro[15] = "O Nome 1 tem que ser diferente do Nome 2 </br>";
  }
  if ($part1 == $part3 && $part1 != "") {
   $erro[16] = "O Nome 1 tem que ser diferente do Nome 3 </br>";
  }
  if ($part1 == $part4 && $part1 != "") {
   $erro[17] = "O Nome 1 tem que ser diferente do Nome 4 </br>";
  }
  if ($part1 == $part5 && $part1 != "") {
   $erro[18] = "O Nome 1 tem que ser diferente do Nome 5 </br>";
  }
  if ($part2 == $part3 && $part2 != "") {
   $erro[19] = "O Nome 2 tem que ser diferente do Nome 3 </br>";
  }
  if ($part2 == $part4 && $part2 != "") {
   $erro[20] = "O Nome 2 tem que ser diferente do Nome 4 </br>";
  }
  if ($part2 == $part5 && $part2 != "") {
   $erro[21] = "O Nome 2 tem que ser diferente do Nome 5 </br>";
  }
  if ($part3 == $part4 && $part3 != "") {
   $erro[22] = "O Nome 3 tem que ser diferente do Nome 4 </br>";
  }
  if ($part3 == $part5 && $part3 != "") {
   $erro[23] = "O Nome 3 tem que ser diferente do Nome 5 </br>";
  }
  if ($part4 == $part5 && $part4 != "") {
   $erro[24] = "O Nome 4 tem que ser diferente do Nome 5 </br>";
  }
 }
}

Imagine isso ate 50 kkkk, muita coisa mais de 10000 linhas. mais de 500Kb

gostaria que se o usuario digitar um igual o outro ou deixar de digitar em um ou outro, aparecece uma messagem especifica de onde ele errou

Tipo: quero fazer igual ai em cima, mais com menos codigos, é possivel ? alguem sabe alguma forma ?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

tive uma ideia aki veja se te atende, fiz uns teste e deu certo

 

mude essas linha aki

<li id="part1" style="display:none;">Nome 1*:<input type="text" id="inputvazil" name="part1"> </input></li>
<li id="part2" style="display:none;">Nome 2*:<input type="text" id="inputvazil" name="part2"> </input></li>     
<li id="part3" style="display:none;">Nome 3*:<input type="text" id="inputvazil" name="part3"> </input></li>     
<li id="part4" style="display:none;">Nome 4*:<input type="text" id="inputvazil" name="part4"> </input></li>     
<li id="part5" style="display:none;">Nome 5*:<input type="text" id="inputvazil" name="part5"> </input></li>

para essas, observe no name eu mudei todos para "part[]", transforma em array para pegar no php, pode ser feito com n linhas

<li id="part1" style="display:none;">Nome 1*:<input type="text" id="inputvazil" name="part[]"> </input></li>
<li id="part2" style="display:none;">Nome 2*:<input type="text" id="inputvazil" name="part[]"> </input></li>     
<li id="part3" style="display:none;">Nome 3*:<input type="text" id="inputvazil" name="part[]"> </input></li>     
<li id="part4" style="display:none;">Nome 4*:<input type="text" id="inputvazil" name="part[]"> </input></li>     
<li id="part5" style="display:none;">Nome 5*:<input type="text" id="inputvazil" name="part[]"> </input></li>

certo, agora no php faça assim

<?php
$qtsparts = $_POST['qtsparts'];//recebe a quantidade
$parts = $_POST['part'];//recebe no formato de array as parts
foreach ($parts as $item => $valor){//varre o array
	if($item == $qtsparts)//se for o último
		break;//para o loop
	if ($valor == ""){//verifica itens vazios
		echo "Nome ".($item+1)." é obrigatório </br>";
	}
        //testa se existem valores repetidos com excessão a ele msm e atribui a variável
	if(($repete = array_search($valor,$parts))!= $item){
		echo "Campos repetidos Nome ".($repete+1)." e Nome ".($item+1)."<br>";		
	}	
}
?>

espero ter ajudado, qlqr dúvida sobre o código é só falar

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola Victor Cometti

 

Ok assim deu certo. vlw

 

mais ô, se caso ñ ouver erros no foreach o conteudo dos input vai para o BD, como eu faria para manda para o BD ?

<?php

$acao = $_GET["acao"];

if ($acao == "cadastro") {
 
 $qtsparts = $_POST['qtsparts'];//recebe a quantidade
 $parts = $_POST['part'];//recebe no formato de array as parts
 
 foreach ($parts as $item => $valor){//varre o array 
  if($item == $qtsparts)//se for o último          	
   break;//para o loop   	
  if ($valor == ""){//verifica itens vazios          	
   echo "Nome ".($item+1)." é obrigatório </br>";    	
  }
    	//testa se existem valores repetidos com excessão a ele msm e atribui a variável    	
  if(($repete = array_search($valor,$parts))!= $item && $valor != ""){            	
   echo "Campos repetidos Nome ".($repete+1)." e Nome ".($item+1)."<br>";              	
  }   	
 }
 if(sizeof($erro) == 0){ 
  # Insere os novos dados no Banco de Dados
 	$inseri = "INSERT INTO `{$tabela2}`  (.......) VALUES (..........)";  
 	$query = mysql_query($inseri)or die(mysql_error());
}
?>
<form method="post" name="form1" action="index.php?acao=cadastro">
 <ul>
  <li>Quantos *: <select name="qtsparts" id="qtsparts">                    	
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
   <option value="5">5</option>
  </select></li>
  <li id="part1">Nome 1*:<input type="text" name="part[]" > </input></li>
  <li id="part2">Nome 2*:<input type="text" name="part[]" > </input></li>
  <li id="part3">Nome 3*:<input type="text" name="part[]" > </input></li>
  <li id="part4">Nome 4*:<input type="text" name="part[]" > </input></li>
  <li id="part5">Nome 5*:<input type="text" name="part[]" > </input></li>
 </ul>
 <input type="submit" name="cadastrar" value="Enviar Cadastro">
</form>

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito simples

é só criar uma variável com valor booleano(true ou false), como segue

$cadastra = true;//inicia com valor true
foreach ($parts as $item => $valor){//varre o array
        if($item == $qtsparts)//se for o último
                break;//para o loop
        if ($valor == ""){//verifica itens vazios
                echo "Nome ".($item+1)." é obrigatório </br>";
                $cadastra = false;//caso esteja vazia vira false
        }
        //testa se existem valores repetidos com excessão a ele msm e atribui a variável
        if(($repete = array_search($valor,$parts))!= $item){
                echo "Campos repetidos Nome ".($repete+1)." e Nome ".($item+1)."<br>";
                $$cadastra = false;//ou caso esteja com campos repetidos vira false
        }
}
if ($cadastra){//verifica se continua com true
//aki você faz o cadastro
}

faz um teste ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola Victor Cometti

 

fis assim

 

include("config.php"); 
$acao = $_GET["acao"];

if ($acao == "cadastro") {
 
 $qtsparts = $_POST['qtsparts'];//recebe a quantidade
 $parts = $_POST['part'];//recebe no formato de array as parts
 $cadastra = true;//inicia com valor true
 
 foreach ($parts as $item => $valor){//varre o array 
  if($item == $qtsparts)//se for o último          	
   break;//para o loop   	
  if ($valor == ""){//verifica itens vazios          	
   echo "Nome ".($item+1)." é obrigatório</br>";    	
  }
    	//testa se existem valores repetidos com excessão a ele msm e atribui a variável    	
  if(($repete = array_search($valor,$parts))!= $item && $valor != ""){            	
   echo "Campos repetidos Nome ".($repete+1)." e Nome ".($item+1)."<br>";              	
  }
 }
  if(sizeof($erro) == 0 && $cadastra == true){ 
   # Insere os novos dados no Banco de Dados
  	$inseri = "INSERT INTO `{$tabela}` (qtsparts, part1, part2, part3, part4, part5) VALUES ('$qtsparts', '$part1', '$part2', '$part3', '$part4', '$part5')";  
  	$query = mysql_query($inseri)or die(mysql_error());
   echo "registrado";
  }
}

sempre quando eu aperto o botão aparece a messagem "Registrado", msm quando existe formularios iguais ou vazius, e quando cadastra no BD esta cadastrando errado.

 

essa linha como devo fazer ?

 

$inseri = "INSERT INTO `{$tabela}` (qtsparts, part1, part2, part3, part4, part5) VALUES ('$qtsparts', '$part1', '$part2', '$part3', '$part4', '$part5')";

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

você n usou o codigo da maneira q eu te mostrei!!

 

você vai ter q criar duas tabelas, pois tratam de campos com n elementos

pode ser assim

tabela1

id (primary key)

nome

...

 

tabela2

id_tabela1 (foreign key)

parte

 

e o código

<?php
include("config.php"); 
$acao = $_GET["acao"];
if ($acao == "cadastro"){
	$qtsparts = $_POST['qtsparts'];//recebe a quantidade 
	$parts = $_POST['part'];//recebe no formato de array as parts 
	$cadastra = true;//inicia com valor true  
	foreach ($parts as $item => $valor){//varre o array
		if($item == $qtsparts)//se for o último
			break;//para o loop
		if ($valor == ""){//verifica itens vazios
			echo "Nome ".($item+1)." é obrigatório</br>";
			$cadastra = false;
		}
		//testa se existem valores repetidos com excessão a ele msm e atribui a variável
		if(($repete = array_search($valor,$parts))!= $item && $valor != ""){ 
			echo "Campos repetidos Nome ".($repete+1)." e Nome ".($item+1)."<br>";
			$cadastra = false;
		}
	}
	if($cadastra){ 
		# Insere os novos dados no Banco de Dados
		$inseri = "INSERT INTO `tabela1` (id,nome) values ({$id},{$nome})";
		$query = mysql_query($inseri)or die(mysql_error());
		foreach ($parts as $item => $valor){
			if($item == $qtsparts)//se for o último
				break;//para o loop
			$query = mysql_query("insert into `tabela2` (id_tabela1,parte) 
					values ({$id},{$valor})") or die(mysql_error());
		}
		echo "registrado";  		
	}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola

 

olha sempre quando eu aperto no botão o valor ta passando e dano o erro, tipo assim, se eu escolho 1(qtsparts) aparece assim

 

Nome 1 é obrigatório

registrado

 

essa linha esta certa msm

if($cadastra){

pq com erro ou sem erro ela esta verdadeira

quando aparecer essa Nome 1 é obrigatório, ñ é para cadastrar no BD. so é para cadastrar no BD quando ñ ouver nenhum formulario igual ou vazil.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

rodei dessa forma aki e funcionou, copia e cola ae e faz um teste

<?php
include ("config.php");
$acao = $_GET["acao"];
if ($acao == "cadastro"){
	$qtsparts = $_POST['qtsparts'];//recebe a quantidade 
	$parts = $_POST['part'];//recebe no formato de array as parts 
	$cadastra = true;//inicia com valor true  
	foreach ($parts as $item => $valor){//varre o array
		if($item == $qtsparts)//se for o último
			break;//para o loop
		if ($valor == ""){//verifica itens vazios
			echo "Nome ".($item+1)." é obrigatório</br>";
			$cadastra = false;
		}
		//testa se existem valores repetidos com excessão a ele msm e atribui a variável
		if(($repete = array_search($valor,$parts))!= $item && $valor != ""){ 
			echo "Campos repetidos Nome ".($repete+1)." e Nome ".($item+1)."<br>";
			$cadastra = false;
		}
	}
	if($cadastra){ 
		# Insere os novos dados no Banco de Dados
		//$inseri = "INSERT INTO `tabela1` (id,nome) values ({$id},{$nome})";
		//$query = mysql_query($inseri)or die(mysql_error());
		foreach ($parts as $item => $valor){
			if($item == $qtsparts)//se for o último
				break;//para o loop
			$query = mysql_query("insert into `tabela2` (id_tabela1,parte) 
					values ({$id},{$valor})") or die(mysql_error());
		}
		echo "registrado";  		
	}
}
?>

descomenta as linhas do codigo anterior

//$inseri = "INSERT INTO `tabela1` (id,nome) values ({$id},{$nome})";                
//$query = mysql_query($inseri)or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não está errado a forma como o vitor está ajudando, serve perfeitamente para o caso, mas não será prático em termos de produtividade para outros projetos ou até mesmo para quando precisar modificar alguma regra.

 

Se tiver tempo, procure migrar para algum framework ou desenvolver um proprio.

você entenderá que o uso de uma framework eliminará boa parte do trabalho dispendioso e passará a focar-se somente na regra de negócios, concluindo seus trabalhos com eficiencia e economizando tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola

 

fis o teste deu certo, obrigado Victor Cometti

 

codigo PHP

<?php
$acao = $_GET["acao"];
if ($acao == "cadastro"){    	
$qtsparts = $_POST['qtsparts'];//recebe a quantidade 		
$parts = $_POST['part'];//recebe no formato de array as parts 		
$cadastra = true;//inicia com valor true      	
foreach ($parts as $item => $valor){//varre o array            	
  if($item == $qtsparts)//se for o último                    	
   break;//para o loop            	
   if ($valor == ""){//verifica itens vazios               		
    echo "Nome ".($item+1)." é obrigatório</br>";                    	
    $cadastra = false;            	
   }       		
   //testa se existem valores repetidos com excessão a ele msm e atribui a variável            	
   if(($repete = array_search($valor,$parts))!= $item && $valor != ""){                    	
    echo "Campos repetidos Nome ".($repete+1)." e Nome ".($item+1)."
";                    	
    $cadastra = false;            	
   }    	
}    	
if($cadastra){                     		
  foreach ($parts as $item => $valor){                    	
   if($item == $qtsparts)//se for o último                            	
   break;//para o loop   		
   $query = mysql_query("insert into `tabela1` (parte1) values ('$valor')") or die(mysql_error());
   //$query = mysql_query("insert into `tabela2` (part2) values ('$valor')") or die(mysql_error());
   //$query = mysql_query("insert into `tabela3` (part3) values ('$valor')") or die(mysql_error());
   //$query = mysql_query("insert into `tabela4` (part4) values ('$valor')") or die(mysql_error());
   //$query = mysql_query("insert into `tabela5` (part5) values ('$valor')") or die(mysql_error());
  }            	
  echo "registrado";                  	
}
}
?>
olha há alguma forma para fazer tipo assim ?

cada $query ta em uma tabela diferente ai ficaria tipo assim

 

o valor do Nome 1 iria para a tabela1 e campo parte1

o valor do Nome 2 iria para a tabela2 e campo parte2

o valor do Nome 3 iria para a tabela3 e campo parte3

o valor do Nome 4 iria para a tabela4 e campo parte4

o valor do Nome 5 iria para a tabela5 e campo parte5

 

Alguem sabe como poderia ser feito isso ?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Modele o banco de dados melhor.

Estude sobre 'Formas Normais'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

na realidade você n vai criar uma tabela a cada registro, a cada item você vai inserir uma linha na tabela, como disse willian estude sobre formas normais.

 

pra te adiantar vo te dar um exemplo de como fazer.

imagine q eu tenha uma tabela com funcionarios com seus dependentes, eu sei que cada registro vai ter um funcionário, mas os dependentes são variáveis. e se eu quizer colocar tudo numa tabela só e suponha que o funcionário tenha 3 dependentes seria algo assim:

 

----------------------------------------------------
|codigo | Nome_funcionario | idade |Nome_dependente|
----------------------------------------------------
|  01   |    antonio       |   30  |    maria      |
|  01   |    antonio       |   30  |    victor     |
|  01   |    antonio       |   30  |    willian    |
----------------------------------------------------
q legal hein, repeti o Nome_fucionario e idade 3 vezes por causa dos dependentes. errado.

então para melhorar isso é só dividir em duas tabelas, a tabela funcionario e a tabela dependente

 

tabela funcionario

 

------------------------------------
|codigo | Nome_funcionario | idade |
----------------------------------- 
|  01   | antonio          |  30   |
------------------------------------

tabela dependente

 

-----------------------------
|cod_funcionario | nome_dep |
-----------------------------
|      01        | maria    |
|      01        | victor   |
|      01        | willian  |
-----------------------------

dividi a tabela e associei as duas pelo codigo do funcionário

aplique isso a sua necessidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, tudo bem, criar tabela é assim

//conecta
$conexao = mysql_connect("local","usuario","senha") or die(mysql_error());
//seleciona banco
$seleciona = mysql_select_db("banco") or die(mysql_error());
//cria tabela
$cria_tabela = mysql_query("create table `nome_tabela` (
            `id` int(11) not null auto_increment,
            `part` varchar(30) unique not null,
             primary key(`id`)")or die (mysql_error());
//insere na tabela criada
$query = mysql_query("insert into `nome_tabela` (`part`) values ('$valor')") or die(mysql_error());

mas eu acho q você ker algo diferente!! cria uma tabela a cada registro é loucura!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola Victor Cometti me-desculpa..

 

as tabelas ja estão criadas dessa forma

 

tabela1 tem o campo parte1

tabela2 tem o campo parte2

tabela3 tem o campo parte3

tabela4 tem o campo parte4

tabela5 tem o campo parte5

 

minha duvida é como inserir o valor do input "Nome 1" no campo parte1 e o valor do input "Nome 2" no campo parte2... etc

 

se eu fazer dessa forma

 

$query = mysql_query("insert into `tabela1` (parte) values ('$valor')") or die(mysql_error());

ira inserir somento o valor do input Nome 1

 

como inserir o Nome 2, Nome 3, Nome 4, Nome 5 tb de acordo com o POST de cada Input ?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu n concordo com essa metodologia sua, como são os mesmo tipo de dados, uma tabela só resolveria e tbm facilitaria na hora de buscar, deletar, atualizar.

mas...

olha ae

foreach ($parts as $item => $valor){
        if($item == $qtsparts)//se for o último                                 
               break;//para o loop
$query = mysql_query("insert into `tabela{$item}` (`parte{$item}`) values ({$valor})") or die(mysql_error());   
}    

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola

 

coloquei o codigo para testar e ocorreu outro problema

 

preenchi os 5 formularios assim, certo1, certo2, certo3, certo4, certo5

apertei no botão e o resultado foi

 

Unknown column 'certo1' in 'field list'

 

diz que a coluna 'certo1' ñ existe, pois é ela ñ existe msm, rssr

 

A tabela acho! "tabela1" a coluna é "parte1" conferi o BD esta escrito tudo certo

 

oq pode esta errado?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, acho que você ñ me entendeu

 

no codigo esta parte1 msm

certo1 foi oq eu preenchi no input para enviar para bd

 

codigo esta assim

<?php
$acao = $_GET["acao"];
if ($acao == "cadastro"){    	
$qtsparts = $_POST['qtsparts'];//recebe a quantidade 		
$parts = $_POST['part'];//recebe no formato de array as parts 		
$cadastra = true;//inicia com valor true      	
foreach ($parts as $item => $valor){//varre o array            	
  if($item == $qtsparts)//se for o último                    	
   break;//para o loop            	
   if ($valor == ""){//verifica itens vazios           			
    echo "Nome ".($item+1)." é obrigatório</br>";                    	
    $cadastra = false;            	
   }   			
   //testa se existem valores repetidos com excessão a ele msm e atribui a variável            	
   if(($repete = array_search($valor,$parts))!= $item && $valor != ""){                    	
    echo "Campos repetidos Nome ".($repete+1)." e Nome ".($item+1)."
";                    	
    $cadastra = false;            	
   }    	
}    	
if($cadastra){                 			
  foreach ($parts as $item => $valor){                    	
   if($item == $qtsparts)//se for o último                            	
   break;//para o loop 
   $query = mysql_query("insert into `tabela{$item}` (`parte{$item}`) values ({$valor})") or die(mysql_error());
   
  }            	
  echo "registrado";                  	
}
}
?>
<form method="post" name="form1" action="index.php?acao=cadastro">
<ul>
  <li>Quantos *: <select name="qtsparts" id="qtsparts">                    	
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
   <option value="5">5</option>
  </select></li>
  <li id="part1">Nome 1*:<input type="text" name="part[1]" > </input></li>
  <li id="part2">Nome 2*:<input type="text" name="part[2]" > </input></li>
  <li id="part3">Nome 3*:<input type="text" name="part[3]" > </input></li>
  <li id="part4">Nome 4*:<input type="text" name="part[4]" > </input></li>
  <li id="part5">Nome 5*:<input type="text" name="part[5]" > </input></li>
</ul>
<input type="submit" name="cadastrar" value="Enviar Cadastro">
</form>

o Input Nome 1: eu preenchi como: certo1

o Input Nome 2: eu preenchi como: certo2

o Input Nome 3: eu preenchi como: certo3

o Input Nome 4: eu preenchi como: certo4

o Input Nome 5: eu preenchi como: certo5

 

apertei cadastrar, ai deu essa menssagem

 

Unknown column 'certo1' in 'field list'

 

essa menssagem quer dizer que ñ existe a coluna "certo1" no BD, ñ é ? se for, ñ é para existir msm a coluna é "parte1" ai tipo: certo1 vai ser inserido na coluna parte1.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque entre aspas:

"insert into `tabela{$item}` (`parte{$item}`) values ('{$valor}')"

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.