Ir para conteúdo

POWERED BY:

Arquivado

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

Danilo Moreira da Costa

como gravar array foreach dentro do mysql

Recommended Posts

Minha dúvida é a seguinte, precisei criar um form q recebe-se vários tipos de produtos e que esses produtos fossem adicionados valores e esses valores ao finalizar era salvo dentro de 1 única celula do mysql.

 

1° caso

recebe os valores

 

<label>
<?php

$sql2= "SELECT * FROM produto ";
$qry2= mysql_query($sql2);
while($linha = mysql_fetch_array($qry2)){
$nome = $linha['produto'];

?>
<br />
<?php echo $linha['produto'];

?>

<input type="txt" class="soma" name="campos[<?php echo $linha['produto'] ?>]" id="produtos" value="0"/>
</label>
<?php } ?>
<br />
<label>Total Volume
<input name="total" readonly="readonly" id="resultado1" />
</label>

 

2° caso q envia os dados para o mysql

foreach($produto as $k=>$v){
$resp = "[$k] => $v.\n";
}


// Insere os dados no banco
$sql = mysql_query("INSERT INTO compra VALUES ('', '".$codigo."', '".$cliente."', '".$usuario_cadastrou."', '".$resp."', '".$total."', '".$saco."', '".$caixa."', '".$data."','".$hora."','".$ativo."')");

// Se os dados forem inseridos com sucesso
if ($sql){
echo "Cadastro realizado com sucesso. Aguarde o retorno.";
}

// Se houver mensagens de erro, exibe-as

 

 

(obs: ele esta enviando outros $_POST[] porem o $resp não conclui correto entra apenas uma array)

 

Sou inicianante em php peço ajuda e agradeço desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque essa linha:

 

<input type="txt" class="soma" name="campos[<?php echo $linha['produto'] ?>]" id="produtos" value="0"/>

Por essa:

 

<input type="txt" class="soma" name="campos[]" id="produtos" value="<?php echo $linha['produto'] ?>"/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não deu certo ele apresenta somente 1 array a primeira [Ãgua] => 0, no banco do mysql.

 

foreach($produto as $k=>$v){
$resp = "[$k] => $v.\n";
echo $resp;
}

echo "<br/>"."fora do foreach".$resp;

ele imprime na web assim

[Vassoura] => 1. [Rodo] => 12. [Gás] => 2. [Água] => 0.
fora do foreach [Água] => 0

preciso salvar todos os dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

Allex eu nao sei se a forma como apresentei a programação é a certa, pq o objetivo final do meu projeto é q eu preciso colocar todas as informações da input do produto com valores e total calculos e salvar no mysql o nome do produto valor de cada produto e total do produto, para q quando o usuário fazer a consulta ele venha ver item por item com os valores cadastrados.

 

o input eu precisei colocar dentro do while pq o próprio usuário q cadastra o nome do produto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta forma que está usando não é a forma mais adequada. Teria que gravar cada item em um campo. Teria então duas tabelas: vendas (não sei se é venda mesmo) e produtos. Em produtos você gravaria o id_venda e o produto. Itens separados, assim como valores de cada produto.

Desta forma, sempre vai precisar criar um array, quebrando os itens na , para tratar os itens.

Compartilhar este post


Link para o post
Compartilhar em outros sites

q maravilha, uma parte ja funcionou, os dados estão sendo cadastrado no bd, somente os nomes q ele ainda nao esta recebendo. como faço para receber os nomes, tipo

 

vassoura = 1



na verdad eu criei 2 tabelas sim, uma tabela produto aonde cadastra o id_produto e o produto o nome da tabela é produto e outra tabela que é a compra aonde estou tentando colocar os nomes dos produtos com valores dentro dela.

 

<form method="post" action="">
Busca: <input type="text" name="search" id="search" autocomplete="off" />
<input type="submit" name="submit" value="OK" />
</form>
<div id="suggestion"></div>

<?php
if(isset($_POST["search"])) {

// Incluimos o arquivo de configuração e conexão com o banco de dados
require("conexao.php");
	
	// Resgatamos o valor do input
	$search = mysql_real_escape_string($_POST["search"]);
	
	// Executamos a query
	$qry = mysql_query("SELECT * FROM `cliente` WHERE `cnpj_cpf` = '{$search}' or `cliente` = '{$search}' ");
	
	// Se houver resultado exibimos, caso não dizemos que nada foi encontrado
	if(mysql_num_rows($qry) > 0) {
		$x = mysql_fetch_assoc($qry);
		
	?>
	<form action="index.php?link=10&id=<?php echo $x["id_cliente"]; ?>" method="post">
  <p>
    <label>Cliente
      <input name="cliente" disabled="disabled" type="text" id="cliente" size="68px" value="<?php echo $x["cliente"]; ?>" />
    </label>
  </p>
  <p>
    <label>Endereço
      <input type="text"disabled="disabled" name="endereco" id="endereço" size="48px" value="<?php echo $x["endereco"]; ?>" />
    </label>
    <label> n°
      <input name="numero" type="text" disabled="disabled" id="numero" size="10px" value="<?php echo $x["numero_endereco"]; ?>"  />
    </label>
  </p>
  <p>
    <label>Bairro
      <input type="text" name="bairro" disabled="disabled" id="bairro" size="40px" value="<?php echo $x["bairro"]; ?>" />
    </label> 
    <label>Complemento
      <input type="text" name="complemento" disabled="disabled" id="complemento" size = "10px" value="<?php echo $x["complemento"]; ?>" />
    </label>
  </p>
  <p>
    <label>CNPJ/CPF
      <input type="text" name="cnpj_cpf" disabled="disabled" id="cnpj_cpf" size="45px" value="<?php echo $x["cnpj_cpf"]; ?>" />
    </label>
    <input type="hidden" name="id"  id="id" value="<?php echo $x["id_cliente"]; ?>" />
  </p>

  <p> </p>
  <p>
    <input type="submit" name="cadastrar" id="cadastrar" value="Alterar" />
  </p>
  <p> </p>
</form>
	
	
	<?php
	}

}
?>
</div>
<div>___________________________________________________________________________</div>

<div id="compra">Criar compra
<form action="compra_cadastrada.php" method="post">
 <br /><br /><label>Cliente
      <input name="cliente" readonly="readonly" type="text" id="cliente" size="68px" value="<?php echo $x["cliente"]; ?>" />
    </label><br />
<label>Código
      <input type="text" name="cnpj_cpf" readonly="readonly" id="cnpj_cpf" size="45px" value="<?php echo $x["cnpj_cpf"]; ?>" />
    </label>
<label>
<?php

$sql2= "SELECT * FROM produto ";
$qry2= mysql_query($sql2);
while($linha = mysql_fetch_array($qry2)){
$nome = $linha['produto'];

?>
<br />
<?php echo $linha['produto']; 

?>

 <input type="txt" class="soma" name="campos[]" id="produtos" value="<?php echo $linha['produto'] ?>"/>
</label>      
<?php  } ?>
<br />
<label>Total Volume
<input  name="total" readonly="readonly" id="resultado1"  />
</label>
<br />
<label>Saco
      <input type="text" name="saco" id="saco"   />
    </label>
    <br />
<label>Caixa
      <input type="text" name="caixa" id="caixa"  />
    </label>
    <input type="hidden" name="usuario_cadastrou" id="usuario_cadastrou" value="<?php echo $_SESSION['nome']?>"  />
   
    <?php 
	$data = date("y-m-d");
$hora = date("H:i:s");
	?>
    <input type="hidden" name="id" id="id" value="<?php echo $id ?>" />
    <input type="hidden" name="data" id="data" value="<?php echo $data ?>" />
    <input type="hidden" name="hora" id="hora" value="<?php echo $hora ?>" />
     <input type="hidden" name="ativo" id="ativo" value="1" />


Allex dentro de suas orientações fiz isso para o inpuit

 <input type="text" class="soma" name="campos[<?php echo $linha['produto'] ?>]" id="produtos" value=""/>

e no caso do foreach q envia para o db fiz a seguinte instrução;

 

$resp = '';
foreach($produto as $k=>$v){
    $resp .= $k.$v . ", ";
}
$resp = trim($resp, ', '); 

entao ele gravo o nome e o valor no db. Muito obrigado Allex vc me ajudou muito. :yes:

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.