Ir para conteúdo

POWERED BY:

Arquivado

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

Crik

[Resolvido] ID dinâmico, método POST e MySQL

Recommended Posts

rsrsr

na verdade, foi por isso que eu não sabia onde colocar! você me passou o código assim...

já voltei ele como era antes...

 

mas to nesse impasse!

 

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, antes disso, olha só:

 

Tirei a Primary Key de um item da tabela e agora quando envio os dados do formulário, aparece a mensagem "Produto cadastrado com sucesso...". Porém, a tabela é alimentada com 00000.

 

Segue código:

 

<?php
	include "conecta_mysql.inc.php";
	echo "<link href='style.css' rel='stylesheet' type='text/css' media='screen' />";
	include "valida.php";
	
		// Formata data aaaa-mm-dd para dd/mm/aaaa
function databr($datasql) {
	if (!empty($datasql)){
	$p_dt = explode('-',$datasql);
	$data_br = $p_dt[2].'/'.$p_dt[1].'/'.$p_dt[0];
	return print $data_br;
	}
}
 
// Formata data dd/mm/aaaa para aaaa-mm-dd
function datasql($databr) {
	if (!empty($databr)){
	$p_dt = explode('/',$databr);
	$data_sql = $p_dt[2].'-'.$p_dt[1].'-'.$p_dt[0];
	return $data_sql;
	}
}

// Formata item com . por ,
function ponto($virgula) {
	if (!empty($virgula)){
	$p_vp = explode(',',$virgula);
	$ponto = $p_vp[0].'.'.$p_vp[1];
	return $ponto;
	}
} 
	
	if ($valida){
		$data = getdate();
		$dataini = '$data[mday]'.'-'.'$data[mon]'.'-'.'$data[year]';/**/
		$representante = $_POST['$nome'];/**/
		$cidade = $_POST['cidade'];/**/
		$estado = $_POST['estado'];/**/
		$campanha = $_POST['campanha'];/**/
		$periodo = datasql( $_POST['periodo']);
		$periodo2 = datasql( $_POST['periodo2']);/**/
		$n = $_POST['inv'];/**/
			
			for($i=1 ; $i<=$n ; $i++){
				$item = $_POST['item'+$i];/**/
				$data2 = datasql( $_POST['dataItem'+$i]);/**/
				$valor = ponto( $_POST['valor'+$i]);/**/
				$nf = $_POST['nf'+$i];/**/
				$sql2 = "INSERT INTO itens(item,data2,valor,nf)VALUES('$item','$data2','$valor','$nf')";
				$insere2 = @mysql_query($sql2);
				
					if ($n>20){
					echo "Limite de 20 itens ultrapassado.";
					echo "<a href='menu_rev.php'>Voltar</a>";
					}
				}
			$sql1 = "INSERT INTO historico(data,representante,cidade,estado,campanha,periodo,periodo2)VALUES(NOW(),'$nome','$cidade','$estado','$campanha','$periodo','$periodo2')";		
			$insere = @mysql_query($sql1); 
		
			if ($insere && $insere2){
				echo "Produto cadastrado com sucesso! Redirecionando...<META HTTP-EQUIV='Refresh' CONTENT='1 ; URL=menu_rev.php'>";
			}
		
			else{
				echo mysql_error ();
			}
		}
	
		@mysql_close($conexao);
?>

Olha só, preciso sair do trabalho, vou pra faculdade... podemos continuar amanhã?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo.. como você não está passando a PK na inserção, vefifica se a PK está com auto_increment ativo caso contrário não vai funcionar.

Valida também na hora de inserir se os registros estão vindo do POST.. ele está rodando 20x.. e se você for cadastrar 1, ele vai um certinho e 19 tudo vazio.. ve isso também cara.

 


for($i=1 ; $i<=$n ; $i++){
                                $item = $_POST['item'+$i];/**/
                                $data2 = datasql( $_POST['dataItem'+$i]);/**/
                                $valor = ponto( $_POST['valor'+$i]);/**/
                                $nf = $_POST['nf'+$i];/**/
                                $sql2 = "INSERT INTO itens(item,data2,valor,nf)VALUES('$item','$data2','$valor','$nf')";
                                $insere2 = @mysql_query($sql2);
                                
                                        if ($n>20){
                                        echo "Limite de 20 itens ultrapassado.";
                                        echo "<a href='menu_rev.php'>Voltar</a>";
                                        }
                                }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia.

 

Tirei o auto_increment junto com a PK... os dados chegam zerados!

 

tirei aquele if, mas mesmo assim, estou na mesma...

 

if ($valida){
		$data = getdate();
		$dataini = '$data[mday]'.'-'.'$data[mon]'.'-'.'$data[year]';/**/
		$representante = $_POST['$nome'];/**/
		$cidade = $_POST['cidade'];/**/
		$estado = $_POST['estado'];/**/
		$campanha = $_POST['campanha'];/**/
		$periodo = datasql( $_POST['periodo']);
		$periodo2 = datasql( $_POST['periodo2']);/**/
		$n = $_POST['inv'];/**/
		$sql1 = "INSERT INTO historico(data,representante,cidade,estado,campanha,periodo,periodo2)VALUES(NOW(),'$nome','$cidade','$estado','$campanha','$periodo','$periodo2')";		
		$insere = @mysql_query($sql1); 	
		$max = "SELECT MAX(cod) FROM historico";
		$x = @mysql_query($max);
			
			for($i=1 ; $i<=$n ; $i++){
				$item = $_POST['item'+$i];/**/
				$data2 = datasql( $_POST['dataItem'+$i]);/**/
				$valor = ponto( $_POST['valor'+$i]);/**/
				$nf = $_POST['nf'+$i];/**/
				$sql2 = "INSERT INTO itens(codhist,item,data2,valor,nf)VALUES('$x','$item','$data2','$valor','$nf')";
				$insere2 = @mysql_query($sql2);
				}
		
			if ($insere && $insere2){
				echo "Produto cadastrado com sucesso! Redirecionando...<META HTTP-EQUIV='Refresh' CONTENT='1 ; URL=menu_rev.php'>";
			}
		
			else{
				echo mysql_error ();
			}
		}
	
		@mysql_close($conexao);

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, o concatenador do php, é o ponto (.)

 

troque:

$item = $_POST['item'+$i];/**/
por:

$item = $_POST['item'.$i];/**/

ainda assim, não gosto desse tipo de abordagem.

Prefira trabalhar com arrays.

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.