Ir para conteúdo

POWERED BY:

Arquivado

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

JoseCarlosWeb

[Resolvido] Múltiplo Insert com php

Recommended Posts

olá Pessoal, sou um programador aprendiz de php. Sou novo por aqui também, e gostaria muito da ajuda de vocês.

 

possuo duas tabelas no mysql, uma com cadastro de clientes com os campos: nome, endereço, valor e dia_vencimento, e uma segunda tabela chamada fatura com os campos: id_cliente, valor, dia_vencimento e situacao. em um formulário eu listo todos os clientes da tabela e ao lado de cada registro um checkbox com o value igual a o id_cliente. Ate então tudo certo. Só que eu preciso que ao selecionar mais de um checkbox, seja inserida na tabela fatura os dados: id_cliente, valor, e dia_vencimento, mas somente dos clientes selecionados. E também uma forma de inserir todos ao mesmo tempo.

Já tentei de algumas formas mas não consegui resolver. Preciso muito de ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você poderia postar o seu codigo.........

 

pra ver como você tá fazendo....... ;) ^_^

 

Bom... é assim:

esse é o formulário que exibe a lista de clientes

 

OBS no topo da pagina eu coloco o require_once('conexao.php');

 

 

<form name="form1" method="post" action="act_geral.php">

<table width="570" border="0" align="center" cellpadding="2" cellspacing="2" class="fonte_1">

<tr>

<td colspan="4"><div align="center" class="style2">CONTROLE GERAL</div></td>

</tr>

<tr>

<td colspan="4"><span class="style5">[Em dia]</span><span class="style4"> [Pago]</span><span class="style3"> [Atrasado]</span></td>

</tr>

<tr>

<td colspan="4"><div align="right">

<label>Ações:

<select name="acao" class="formulario" id="acao">

<option>...</option>

<option value="1">Pagamento Efetuado</option>

<option value="2">Excluir Fatura</option>

<option value="3">Gerar Recibo</option>

</select>

<input type="image" src="../imagens/desb.png" name="button2" id="button2" value="Submit">

</label>

</div></td>

</tr>

<tr>

<td width="244" class="texto_verm"><div align="center"><strong>Cliente</strong></div></td>

<td width="100"> </td>

<td width="100"> </td>

<td width="100"> </td>

</tr>

<?php

$sql_cli = mysql_query("SELECT id_cliente, nome FROM controle.cliente")or die(mysql_error());

while($cli = mysql_fetch_array($sql_cli)){

$id = $cli['id_cliente'];

 

?>

<tr>

<td width="244" bgcolor="#D5D5D5" class="style2"><?php echo $cli['nome']; ?></td>

<?php

$sql_fat = mysql_query("SELECT * FROM controle.fatura WHERE id_cliente = '$id' LIMIT 3")or die(mysql_error());

while($f = mysql_fetch_array($sql_fat)){

/*cores dos campos*/

if($f['situa'] == 1){

$style = "#0099FF";

}elseif($f['situa'] == 2){

$style = "#FF0000";

}elseif($f['situa'] == 3){

$style = "#00CC00";

}

?>

<td valign="top" bgcolor="<?php echo $style; ?>" class="style2"><?php echo $f['vencimento']; ?><br>

R$: <?php echo $f['valor']; ?>

<div id="div_float_right">

<input name="esse" type="checkbox" class="formulario" id="esse" value="<?php echo $f['id_boleto']; ?>

</div> </td>

<?php } ?>

</tr>

<?php } ?>

</table>

</form>

 

Eu setei o arquivo act_geral.php para fazer o insert na tabela faturas. mas não consegui sair do lugar =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque tbm esse outro arquivo..........

 

e mande seu MSN pra gente descultir melhor

 

o MEU MSN: macielc.ronaldo@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

quanto a pegar valores dos checkbox, dá uma olhada aqui

 

http://forum.imasters.com.br/index.php?/topic/125036-pegar-dados-de-checkbox/

 

outra coisa pra q você quer colocar na tabela fatura o dia de vencimento e valor se você já tem isso na tabela de clientes?

insere na tabela fatura somente o id do cliente e a situação, o resto dos dados você pode pegar na tabela cliente.

 

e inserir você pode inserir vários linhas ao mesmo tempo, dessa forma.

 

insert into fatura id_cliente,situacao values (id_cliente1,situacao),(id_cliente2,situacao),.....

 

qlqr duvida a disposição

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, o sistema que estou desenvolvendo é um controle de financeiro, então o usuário terá a opção de gerar uma fatura manualmente, no caso escolhendo usuário por usuário e também pretendo fazer com que ele gere as faturas automaticamente em uma data determinada. o código que eu postei aqui como podem ver, lista os usuários as faturas já geradas do usuário. preciso saber como inserir na tabela fatura, tanto manual (por checkbox), como automaticamente (data determinada). quanto a inserir dados em data especifica não há problema a questão é como eu vou inserir vários ao mesmo tempo na tabela com seus respectivos valores e datas de vencimento...

Compartilhar este post


Link para o post
Compartilhar em outros sites

aki, vo te mostrar como inserir vários ao mesmo tempo

não testei fiz aqui agora, e não sei se entendi o que você quer, mas tae, adapte as suas necessidades

 


<form action="insere.php" method="post">
<label> Selecione cliente:</label>
<input type=checkbox name="cliente[]" value=1>Cliente 1
<input type=checkbox name="cliente[]" value=2>Cliente 2
<input type=checkbox name="cliente[]" value=3>Cliente 3
<input type=checkbox name="cliente[]" value=4>Cliente 4
<input type=checkbox name="cliente[]" value=5>Cliente 5
<input type=checkbox name="cliente[]" value=6>Cliente 6
<input type=submit value="Enviar">
</form>

insere.php

 

<?php
// Verifica se usuário escolheu algum cliente
if(isset($_POST["cliente"])){
    $qtde_posicoes = count($_POST["cliente"]);//recebe a quantidade de posições do vetor
    //inicia a query para inserir 
    $query = "insert into fatura (id_fatura,id_cliente,valor,dia_vencimento,situacao) values";
    // Faz loop pelo array do cliente
    foreach($_POST["cliente"] as $key => $value) {
        //seleciona cliente
        $sql=mysql_query("select id,valor,dia_vencimento from clientes where id=$value");        		
	//extrai os dados
        $linha=mysql_fetch_array($sql);
        if($key+1==$qtde_posicoes)//verifica se é a ultima posicao do vetor
		$query .= "(NULL,".$linha["id"].",".$linha["valor"].",".$linha["dia_vencimento"].",'sei lah')"; 
	else
		$query .= "(NULL,".$linha["id"].",".$linha["valor"].",".$linha["dia_vencimento"].",'sei lah'),";		
    }
    //executa a query inserindo todos os clientes selecionados
    mysql_query($query) or die (mysql_error());	
}
else
    echo "Você não escolheu nenhum cliente!";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

aki, vo te mostrar como inserir vários ao mesmo tempo

não testei fiz aqui agora, e não sei se entendi o que você quer, mas tae, adapte as suas necessidades

 


<form action="insere.php" method="post">
<label> Selecione cliente:</label>
<input type=checkbox name="cliente[]" value=1>Cliente 1
<input type=checkbox name="cliente[]" value=2>Cliente 2
<input type=checkbox name="cliente[]" value=3>Cliente 3
<input type=checkbox name="cliente[]" value=4>Cliente 4
<input type=checkbox name="cliente[]" value=5>Cliente 5
<input type=checkbox name="cliente[]" value=6>Cliente 6
<input type=submit value="Enviar">
</form>

insere.php

 

<?php
// Verifica se usuário escolheu algum cliente
if(isset($_POST["cliente"])){
    $qtde_posicoes = count($_POST["cliente"]);//recebe a quantidade de posições do vetor
    //inicia a query para inserir 
    $query = "insert into fatura (id_fatura,id_cliente,valor,dia_vencimento,situacao) values";
    // Faz loop pelo array do cliente
    foreach($_POST["cliente"] as $key => $value) {
        //seleciona cliente
        $sql=mysql_query("select id,valor,dia_vencimento from clientes where id=$value");        		
	//extrai os dados
        $linha=mysql_fetch_array($sql);
        if($key+1==$qtde_posicoes)//verifica se é a ultima posicao do vetor
		$query .= "(NULL,".$linha["id"].",".$linha["valor"].",".$linha["dia_vencimento"].",'sei lah')"; 
	else
		$query .= "(NULL,".$linha["id"].",".$linha["valor"].",".$linha["dia_vencimento"].",'sei lah'),";		
    }
    //executa a query inserindo todos os clientes selecionados
    mysql_query($query) or die (mysql_error());	
}
else
    echo "Você não escolheu nenhum cliente!";
?>

Meu Irmão é isso mesmo! VALEU DE VERDADE!

Estou utilizando aqui e esta dando certo =D

Agora eu estou tentando criar um UPDATE para as faturas. e estou utilizando a mesma lógica so que ele apresenta um erro...

segue o código:

 

<?php

require_once('conexao.php');

require_once('cookie.php');

 

$acao = $_POST['acao'];

if($acao == 1){ // a acao 1 atualiza o campo situa para 3

// Verifica se usuário escolheu algum boleto

if(isset($_POST["boleto"])){

$qtde_posicoes = count($_POST["boleto"]);

//recebe a quantidade de posições do vetor

//inicia a query para inserir

$query = "UPDATE controle.fatura SET situa = 3 WHERE\n";

// Faz loop pelo array do boleto

foreach($_POST["boleto"] as $key => $value){

//seleciona boleto

if($key + 1 == $qtde_posicoes)

//verifica se é a ultima posicao do vetor

$query .= "id_boleto = '$value'";

$query .= ",";

}

//executa a query inserindo todos os boletos selecionados

mysql_query($query) or die (mysql_error());

}

else echo "Você não escolheu nenhum boleto!";

}

?>

 

Quando executo o código ele retorna o erro:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id_boleto = '53',' at line 2

 

Help, Please!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente olha isso aqui

$query = "UPDATE controle.fatura SET situa = 3 WHERE\n";
você está inserindo um "\n" na query, dá pau msm

 

outro erro

foreach($_POST["boleto"] as $key => $value){
//seleciona boleto
if($key + 1 == $qtde_posicoes)//verifica se é a ultima posicao do vetor
$query .= "id_boleto = '$value'";
$query .= ",";
}

esse if só vai entrar quando for a ultima posicao do vetor, e quando não for???

 

assim acho q vai dá certo

//a query abaixo utiliza o "in" para colocar uma relação de "id_boleto" que irá atualizar
$query = "UPDATE controle.fatura SET situa = 3 WHERE id_boleto in(";
// Faz loop pelo array do boleto 
foreach($_POST["boleto"] as $key => $value){
if($key + 1 == $qtde_posicoes)//verifica se é a ultima posicao do vetor
	$query .= $value;
else
	$query .= $value.",";
}
$query .=")";//finaliza a query 
//executa a query inserindo todos os boletos selecionados 
mysql_query($query) or die (mysql_error());

e finalizando veja como vai fica seu codigo

 

<?php
require_once('conexao.php');
require_once('cookie.php');

$acao = $_POST['acao'];
if($acao == 1){ // a acao 1 atualiza o campo situa para 3
// Verifica se usuário escolheu algum boleto
if(isset($_POST["boleto"])){ 
$qtde_posicoes = count($_POST["boleto"]);//recebe a quantidade de posições do vetor 
//inicia a query para inserir 
$query = "UPDATE controle.fatura SET situa = 3 WHERE id_boleto in(";
// Faz loop pelo array do boleto 
foreach($_POST["boleto"] as $key => $value){
//seleciona boleto
if($key + 1 == $qtde_posicoes)//verifica se é a ultima posicao do vetor
	$query .= $value;
else
	$query .= $value.",";
}
$query .=")"; 
//executa a query inserindo todos os boletos selecionados 
mysql_query($query) or die (mysql_error());
}
else echo "Você não escolheu nenhum boleto!";
}
?>

espero que de certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente olha isso aqui

$query = "UPDATE controle.fatura SET situa = 3 WHERE\n";
você está inserindo um "\n" na query, dá pau msm

 

outro erro

foreach($_POST["boleto"] as $key => $value){
//seleciona boleto
if($key + 1 == $qtde_posicoes)//verifica se é a ultima posicao do vetor
$query .= "id_boleto = '$value'";
$query .= ",";
}

esse if só vai entrar quando for a ultima posicao do vetor, e quando não for???

 

assim acho q vai dá certo

//a query abaixo utiliza o "in" para colocar uma relação de "id_boleto" que irá atualizar
$query = "UPDATE controle.fatura SET situa = 3 WHERE id_boleto in(";
// Faz loop pelo array do boleto 
foreach($_POST["boleto"] as $key => $value){
if($key + 1 == $qtde_posicoes)//verifica se é a ultima posicao do vetor
	$query .= $value;
else
	$query .= $value.",";
}
$query .=")";//finaliza a query 
//executa a query inserindo todos os boletos selecionados 
mysql_query($query) or die (mysql_error());

e finalizando veja como vai fica seu codigo

 

<?php
require_once('conexao.php');
require_once('cookie.php');

$acao = $_POST['acao'];
if($acao == 1){ // a acao 1 atualiza o campo situa para 3
// Verifica se usuário escolheu algum boleto
if(isset($_POST["boleto"])){ 
$qtde_posicoes = count($_POST["boleto"]);//recebe a quantidade de posições do vetor 
//inicia a query para inserir 
$query = "UPDATE controle.fatura SET situa = 3 WHERE id_boleto in(";
// Faz loop pelo array do boleto 
foreach($_POST["boleto"] as $key => $value){
//seleciona boleto
if($key + 1 == $qtde_posicoes)//verifica se é a ultima posicao do vetor
	$query .= $value;
else
	$query .= $value.",";
}
$query .=")"; 
//executa a query inserindo todos os boletos selecionados 
mysql_query($query) or die (mysql_error());
}
else echo "Você não escolheu nenhum boleto!";
}
?>

espero que de certo

 

 

Deu Certíssimo Perfeito

Agradeço muito. Precisando estamos as órdens!!

VLW

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.