Ir para conteúdo

POWERED BY:

Arquivado

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

Bruno Conte

foreach

Recommended Posts

boa tarde.

 

em um outro topico ja resolvido do forum, postei minha duvida sobre o foreach.

 

hj tenho um campo so no foreach assim:

 

	include"../includes/conecta.php";
$id_usuario = $_POST['id_usuario'];
foreach($_POST['beneficio'] as $beneficio){
       $sql = "INSERT INTO tabela_beneficios (id_usuario, nome_beneficio) VALUES('{$id_usuario}', '{$beneficio}')";
       mysql_query($sql) or die(mysql_error());
}

 

so que eu gostaria de acrescentar mais um campo foreach, hoje so tem o beneficio, gostaria agora de ter beneficios e descontos???

 

a tabela inclui alem de id_usuario, nome beneficio coloquei nome_desconto que podem ser mais de um.

 

att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao, o que voce me sugere:

 

codigo form que fiz:

 

<form action="recebeteste.php" method="post">
 <p>
 Usuário:
 <input type="text" name="id_usuario" value="2" />
 </p>
 <p>Beneficios:</p>
 <p>
   <input type="checkbox" name="beneficio[]" value="planosaude"/>plano de saude
   <br/>
   <input type="checkbox" name="beneficio[]" value="ferias"/>ferias
   <br/>
   <input type="checkbox" name="beneficio[]" value="maternidade"/>maternidade
   <br/>
 <input type="checkbox" name="beneficio[]" value="carteiraassinada"/>Carteira Assinada</p>
 <p>Descontos:</p>
 <p>
   <input type="checkbox" name="descontos[]" value="valetransporte"/>
   Vale Transporte<br/>
   <input type="checkbox" name="descontos[]" value="alimentacao"/>
   Alimentação <br/>
   <input type="checkbox" name="descontos[]" value="cestabasica"/>
   Cesta Basica<br />    
   <br/>
   <input type="submit"  value="Enviar"/>
   <br/>
 </p>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta alguma coisa assim com seus $_POST

 

ve ai que bicho dá =P

 

$bn = array('beneficios'=>array(1,2,3,4,5,6,7,8));
$ds = array('descontos'=>array('a','b','c','d','e'));

$for = array($bn,$ds);

foreach($for as $key=>$d){

var_dump($d);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao voce acha que devo fazer uma tabela chamada descontos tambem???

 

Cara, eu ainda estou meio perdido nessa parte por exemplo.

 

como apos preencher um formulario completo, ele gravar e mais de uma tabela.

 

isso ainda fico meio perdido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao voce acha que devo fazer uma tabela chamada descontos tambem???

 

Sim, pois essa tabela que você tem aí é pra relacionar o usuário com o benefício, você precisa de outra pra relacionar com o desconto.

 

como apos preencher um formulario completo, ele gravar e mais de uma tabela.

 

Você pode fazer assim:

 

<?php
include"../includes/conecta.php";
$id_usuario = $_POST['id_usuario'];
foreach ($_POST['beneficio'] as $beneficio) {
$sql = "INSERT INTO tabela_beneficios (id_usuario, nome_beneficio) VALUES('{$id_usuario}', '{$beneficio}')";
mysql_query($sql) or die(mysql_error());
}
foreach ($_POST['descontos'] as $desconto) {
$sql = "INSERT INTO tabela_descontos (id_usuario, nome_desconto) VALUES('{$id_usuario}', '{$desconto}')";
mysql_query($sql) or die(mysql_error());
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

leozitho obrigado, deste jeito funcionou beleza.

neste de cadastro de funcionario esta ok.

 

agora estou desenvolvendo para minha empresa um sistema de OS, coisa simples, cadastro o cliente e a OS.

 

no cadastro da OS fiz 2 tabelas:

 

os e os_itens.

na os tem dados do cliente, data da os, numero da os.

 

e os itens tem id_os, produto, qtd, valor.

 

para adicionar itens fiz o seguinte formulario:

 

<script language="javascript">
var input = 0;
function mais(campo) {

var nova = document.getElementById("aqui");
var novadiv = document.createElement("div");
var nomediv = "div";
novadiv.innerHTML = "Nome Produto: <input type='text' name='produto[]' value='' style='width:193px;height:20px;'> Quantidade: <input type='text' name='qtd[]' value='' style='width:193px;height:20px;'> Valor: <input type='text' name='valor[]' value='' style='width:193px;height:20px;'>";
nova.appendChild(novadiv);

input++;
}</script>
<form method='post' action='enviar.php' enctype='multipart/form-data'>
<input type='button' value='Inserir Mais serviço' onClick='mais(campo.value)'>
<input type='hidden' name='campo' value=''>
<div id='aqui'>

</div>
<input type='submit' name='enviar' value='Enviar Cadastro(s)'>
</form> 

 

agora minha duvida e o que utilizar se o foreach e so para 1 variavel.

 

att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade o erro esta no formulario...

 

<p>
   <input type="checkbox" name="beneficio[]" value="planosaude"/>plano de saude
   <br/>
   <input type="checkbox" name="beneficio[]" value="ferias"/>ferias
   <br/>
   <input type="checkbox" name="beneficio[]" value="maternidade"/>maternidade
   <br/>
 <input type="checkbox" name="beneficio[]" value="carteiraassinada"/>Carteira Assinada</p>
 <p>Descontos:</p>
 <p>
   <input type="checkbox" name="descontos[]" value="valetransporte"/>
   Vale Transporte<br/>
   <input type="checkbox" name="descontos[]" value="alimentacao"/>
   Alimentação <br/>
   <input type="checkbox" name="descontos[]" value="cestabasica"/>
   Cesta Basica<br />    
   <br/>
   <input type="submit"  value="Enviar"/>
   <br/>
 </p>

 

 

faz assim

 

<p>
   <input type="checkbox" name="beneficio[planosaude]" value="valor"/>plano de saude
   <br/>
   <input type="checkbox" name="beneficio[ferias]" value="valor"/>ferias
   <br/>
   <input type="checkbox" name="beneficio[maternidade]" value=""/>maternidade
   <br/>
 <input type="checkbox" name="beneficio[carteiraassinada]" value="valor"/>Carteira Assinada</p>

$men = '';
foreach($_POST as $key => $value)
{
   	if(is_array($value))
   	{
       	foreach($value as $ind => $val)
       	{
           	$men .= strtoupper(str_replace('_',' ',$ind))." : <b>{$val}</b><br/>";
       	}
   	}
   	else
   	{
       	$men .= strtoupper(str_replace('_',' ',$key))." :  <b>{$value} </b><br/>";
   	}
}

 

da uma estudada neste codigo aqui...

 

eu precisei fazer algo parecido no passado, entao você tera q adaptar este codigo, mas eh parecido com seu problema: um form bem complexo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Igor.php esse codigo de beneficios/descontos resolvi com a ajuda do Leozitho.

 

mais esse codigo que voce pediu para eu dar uma estudada, se encaixa no meu sisteminha de OS?

porque praticamente a ideia e a mesma, o que muda e a quantidade de campos que precisamos gravar no banco de dados.

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.