Ir para conteúdo

POWERED BY:

Arquivado

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

rodrigofariat

[Resolvido] Criando uma tabela de Pagamentos

Recommended Posts

Pessoal,

 

Fiz uma tabela de pagamentos nas quais os campos são:

 

1) Codigo

2) Nome

3) Mensalidade

4) Mês

5) Ano

6)Sim/Nao (opção)

 

Os dados código, nome, mensalidade tem como origem uma tabela de clientes,

esses dados aparecem na tela (somente apresenta os dados na tela), e os

campos ano, mes e sim/nao são feitos usando um select.

 

Os campos que tem o select (funçao do html) , como ano e mes são inseridos no banco.

Entretanto os dados codigo, nome, mensalidade não sao inseridos no banco pois não possuem

uma identificação com o campo name.

 

Gostaria de saber como posso pegar os dados codigo,nome, mensalidade e inserir os mesmos

no banco. Meu código esta logo abaixo:

 

#mostrapagalunos.php										
<table width=600 height=18 cellpadding=2 cellspacing=2 class="estilotabela"> 
<tr>
  <td class="estilocelula">Codigo</td>
  <td class="estilocelula">Nome</td>
  <td class="estilocelula">Mensalidade</td>
  <td class="estilocelula">Mês</td>
  <td class="estilocelula">Ano</td>
  <td class="estilocelula">Pagamento</td>
  </tr>

<?php

	$mes = date('m');
	$ano = date('Y');
	
	$conexao = mysql_connect("localhost", "root", "") or die ("Erro na conexao ao banco de dados.");
	$db = mysql_select_db("transportescolar") or die ("Erro ao selecionar a base de dados.");
	$sql = "SELECT * FROM cadastroclientes;";
	$resultado = mysql_query($sql);
	$cont = 0;
	
	while ($linha=mysql_fetch_array($resultado))
	{
	

	# Dados são exibidos na tela, porém como não existe select os dados abaixo
	# não sao inseridos no banco
	echo "<tr bgcolor='".$cor."'>";
	echo "<td>".$linha['codigo']."</td>";
	echo "<td>".$linha['nomep']."</td>";
	echo "<td>".$linha['mensalidade']."</td>";
	echo "<td>";
	
	echo '<label for="mensal"></label>';
	echo '<SELECT NAME="mes">';
	if ($mes == '01')
	 {
	  echo '<OPTION>Janeiro';
	 }
	if ($mes == '02')
	 {
	   echo '<OPTION>Fevereiro';
	 }
	if ($mes == '03')
	 {
	   echo '<OPTION>Março';
	 };
	echo '</SELECT>';
	echo "<br>";
	echo "</td>";

	echo "<td>";
	echo '<label for="ano"></label>';
	echo '<SELECT NAME="ano">';
	  if ($ano == '2009')
		{
		  echo '<OPTION>2009';
		}
	   else
		 {
			$ano++;
		 }
	echo '</SELECT>';
	echo "<br>";
	echo "</td>";

	echo "<td>";
	echo '<label for="opcao"></label>';
	echo '<SELECT NAME="opcao">';
	echo '<OPTION>Nao';
	echo '<OPTION>Sim';
	echo '</SELECT>';
	echo "<br>";
	echo "</td>";
	echo "</tr>";
	$cont = $cont + 1;
  } 

  echo "<br><br>";
  echo '<input type=submit value="Enviar"><br>';
  echo "<br><br>"; 

#controlespagamentos.php
<?php
	   
	   #Recupera dados do arquivo mostrapagalunos.php
	   #Acontece que somente os campos que tem select sao cadastrados no banco
	   # Afinal os dados estão sendo impressos na tela
	   $codigoaluno =  ($_POST['codigo']);
	   $nomep = ($_POST['nomep']);
	   $mes = ($_POST['mes']);
	   $ano = ($_POST['ano']);
	   $mensalidade = ($_POST['mensalidade']);
	   $opcao = ($_POST['opcao']);
	   $erro=0;

	  echo "<br>";

	  #Cadastra novo pagamento
	  if ($erro==0)
		 {
		   $conexao = mysqli_connect ("localhost", "", "");
		   mysqli_select_db ($conexao, "transportescolar");
		   $consulta ="INSERT INTO pagamentosalunos VALUES('$codigoaluno','$nomeesc','$nomep','$mensalidade','$mes',
		   '$ano','$opcao')";
		   $resultado = mysqli_query ($conexao,$consulta);
			mysqli_close($conexao);
			echo "<b><center><font color='red'>Dados cadastrados com sucesso</center></font></b><br><br>";
		  }
		   else
		   {
			 #echo "<b>Dados nao forma cadastrados</b>";
			 echo "<b><font color='red'>Erros foram encontrados !</b></font><br>";
			 echo "<b><font color='red'>Verifique as pendencias acima !</b></font><br><br>";
			 
		   }
		   
?>

Att,

 

Faria

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem diversas possibilidades. Umas mais elegantes que outras.

 

Uma é você criar campos hidden e, no value do campo passar a mesma variável que imprime cada campo que você quer inserir a mais.

 

Eu não gosto muito, mas não é tão errado assim, já que campos hidden SERVEM para isso e não aparecem na tela.

 

A segunda é por $_GET, mas é muito deselegante visto que as informações vão aparecer na URL (e ainda tem a limitação de 255 caracteres).

 

A terceira é você criar campos de texto comuns e colocar a variável no value do mesmo.Depois, via CSS você estiliza esse campo sumindo com a borda, deixando o fundo da mesma cor que a tabela e etc. E, no PHP que receber, usar $_POST normalmente.

 

Outras possibilidades é com sessions e cookies, cada qual com seu método de funcionamento e obtenção através de $_SESSION e $_COOKIE, respectivamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi resolvi dessa forma:

 

echo "<td><input type='text' name='codigo' value='{$linha['codigo']}' /></td>";
  echo "<td><input type='text' name='nomep' value='{$linha['nomep']}' /></td>";
  echo "<td><input type='text' name='mensalidade' value='{$linha['mensalidade']}' /></td>";
  echo "<td>";

Assim todo os dados foram gravados no banco, com sucesso.

 

Agora preciso fazer com que todos os registros mostrados na tela seja cadastrados no banco, a única ação do usuário é colocar sim ou não para o pagamento feito (os outros dados são automáticos ), vejam a figura abaixo:

 

Imagem Postada

 

O objetivo é o usuário escolher a opção sim ou não para todos os registros que aparecem na tela.

Após todos os registros serem marcados (sim ou nao), ao clicar no botão enviar, todos os dados devem ir para o banco de dados.

 

Creio que isso possa gerar um alto processamento, no caso tenho registros que varia de 50 a 100 registros,

mas fazer um cadastro por vez é bem exausto.

 

O script abaixo é para criar um registro no banco, com um for consigo fazer com que todos os

registros sejam adicionados no banco ?

 

Creio que preciso fazer um for, para cada iteração insiro no banco.

 

#Cadastra novo pagamento

	 $conexao = mysqli_connect ("localhost", "root", "");
	 mysqli_select_db ($conexao, "transporte");	  
	 
		 $consulta ="INSERT INTO pagamentosalunos VALUES('$codigoaluno','$nomep','$mes','$ano',		'$mensalidade','$opcao')";
		   $resultado = mysqli_query ($conexao,$consulta);
			mysqli_close($conexao);
			echo "<b><center><font color='red'>Dados cadastrados com sucesso</center></font></b><br><br>";
		  }

 

 

Obs: botões com select são somente para deixar com um visual melhor.

 

Att,

 

Faria

 

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.