Ir para conteúdo
Fórum Script Brasil
  • 0

inserir codigo rand() no bd


cleimarlemes

Pergunta

boa tarde estou com este codigo rand() abaixo

<?php
function gerar($qtd) {
	$codigo = null;
	for($i = 0; $i<$qtd; $i++) {
		$codigo .= rand(0, 9);
	}
	return $codigo;
}


echo gerar(6);
?>
ele gera algo como : 873740

então quero saber como faço pra carregar esse codigo dentro de uma tabela com o nome de matricula, pois cada pessoa cadastrada tera uma matricula pra poder usar.

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
1 hora atrás, Leonardo Persan disse:

Boa tarde tudo bem?

Como você está levando, ou levou, os outros dados para o Banco de Dados?

$sql = 'INSERT INTO tb_cadastro (matricula, tipo, situacao, nome, identidade, placa, veiculo, cidade, uf, empresa, foto)VALUES(:matricula, :tipo, :situacao, :nome, :identidade, :placa, :veiculo, :cidade, :uf, :empresa, :foto)';

            $stm = $conexao->prepare($sql);
			$stm->bindValue(':matricula', $matricula);
			$stm->bindValue(':tipo', $tipo);
			$stm->bindValue(':situacao', $situacao);
			$stm->bindValue(':nome', $nome);
			$stm->bindValue(':identidade', $identidade);
			$stm->bindValue(':placa', $placa);
			$stm->bindValue(':veiculo', $veiculo);
			$stm->bindValue(':cidade', $cidade);
			$stm->bindValue(':uf', $uf);
			$stm->bindValue(':empresa', $empresa);
		//	$stm->bindValue(':datacadastro', $dataLocal);
			$stm->bindValue(':foto', $nome_foto);

bom ta assim, mas ele eu não entendi como fazer pra ele aparecer no formulario de cadastro pra depois ser inserido no bd . tipo ao abrir o formulario de castro o campo matricula já estaria preenchido com o valor que ele gerar, assim ao enviar o formulario esse codigo fosse pro campo matricula no bd, ae quando abrir o formulario novamente seria outro codigo novo. deu pra entender? obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Ele não precisa aparecer no FORM, já que você gera ele automaticamente só acrescenta o campo no INSERT, chama a função dentro de outro bindValue.

<?php
$sql = 'INSERT INTO tb_cadastro (matricula, tipo, situacao, nome, identidade, placa, veiculo, cidade, uf, empresa, foto, codigo)VALUES(:matricula, :tipo, :situacao, :nome, :identidade, :placa, :veiculo, :cidade, :uf, :empresa, :foto, :codigo)';
//...
$stm->bindValue(':codigo', gerar(6));
//...

 

Link para o comentário
Compartilhar em outros sites

  • 0
13 minutos atrás, Leonardo Persan disse:

Ele não precisa aparecer no FORM, já que você gera ele automaticamente só acrescenta o campo no INSERT, chama a função dentro de outro bindValue.


<?php
$sql = 'INSERT INTO tb_cadastro (matricula, tipo, situacao, nome, identidade, placa, veiculo, cidade, uf, empresa, foto, codigo)VALUES(:matricula, :tipo, :situacao, :nome, :identidade, :placa, :veiculo, :cidade, :uf, :empresa, :foto, :codigo)';
//...
$stm->bindValue(':codigo', gerar(6));
//...

 

oi, mas teria que aparecer o codigo no cadastro pois este codigo seria passado pra pessoa pra depois quando ela retornar so digitar a matricula pra ser liberada, se não aparecer não tem como saber qual codigo, a não ser que tenho q ver no bd.

Link para o comentário
Compartilhar em outros sites

  • 0
2 minutos atrás, Leonardo Persan disse:

Só coloca numa variável antes de jogar no bindValue

function gerar($qtd) {
	$codigo = null;
	for($i = 0; $i<$qtd; $i++) {
		$codigo .= rand(0, 9);
	}
	return $codigo;
}


echo gerar(6);

$codigo = gerar(6);


			$sql = 'INSERT INTO tb_cadastro (matricula, codigo, tipo, situacao, nome, identidade, placa, veiculo, cidade, uf, empresa, foto)VALUES(:matricula, :codigo, :tipo, :situacao, :nome, :identidade, :placa, :veiculo, :cidade, :uf, :empresa, :foto)';

            $stm = $conexao->prepare($sql);
			$stm->bindValue(':matricula', $matricula);
            $stm->bindValue(':codigo', gerar(6));		

criei mais um campo no bd ( codigo ) e ao fazer novo cadastro ele não foi gerado no bd.  

Link para o comentário
Compartilhar em outros sites

  • 0

Certo, porque o registro não vai pro banco é um mistério, da um EXPLAIN tb_cadastro, printa e cola o resultado aqui.

Mas fora isso seu código está errado porque cada vez que você chama a função gerar() ela cria um novo código, então você deve chama-la apenas uma vez atribuindo o seu resultado à uma variável e depois somente utilizar a variável, para escrever na tela ou inserir no banco.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...