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

Dados Repetidos PHP


jgasper

Pergunta

Bom dia
Preciso de uma ajuda
Estou fazendo um cadastro em php onde tneho diversos dados, preciso que dois desses dados do cadastro exemplo CPF + RG se estiverem iguais a outro cadastro no banco ele não deixar cadastrar. Utilizo o PHP + Mysql, alguém teria um exemplo de como eu poderia fazer isso? No aguardo, e desde já obrigado
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Isso resolve-se utilizando a cláusula UNIQUE nos campos CPF e RG:

ALTER TABLE `tabela` ADD UNIQUE (`CPF`, `RG`);
try 
{
	$mysqli = new mysqli($_host, $_user, $_password, $_db); //substituir pelas tuas credenciais
	$cpf = $_POST['cpf'];
	$rg = $_POST['rg'];
	$sql = "INSERT INTO `tabela` (`CPF`, `RG`) VALUES ('$cpf', '$rg')";
	if (!$mysqli->query($sql)) 
	{
		$message = "Já existe um registo com os valores CPF e RG inseridos.";
	}
	else 
	{
		$message = "Registo inserido com sucesso!";	
	}
}
catch (Exception $ex) 
{
	echo $ex->getMessage();
}
Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Isso resolve-se utilizando a cláusula UNIQUE nos campos CPF e RG:

ALTER TABLE `tabela` ADD UNIQUE (`CPF`, `RG`);
try 
{
	$mysqli = new mysqli($_host, $_user, $_password, $_db); //substituir pelas tuas credenciais
	$cpf = $_POST['cpf'];
	$rg = $_POST['rg'];
	$sql = "INSERT INTO `tabela` (`CPF`, `RG`) VALUES ('$cpf', '$rg')";
	if (!$mysqli->query($sql)) 
	{
		$message = "J&aacute; existe um registo com os valores CPF e RG inseridos.";
	}
	else 
	{
		$message = "Registo inserido com sucesso!";	
	}
}
catch (Exception $ex) 
{
	echo $ex->getMessage();
}

Aqui ta o meu codigo:

<?php


try 
{
include "Config/config_sistema.php";
$prefixo = $_POST['prefixo'];
$basico = $_POST['basico'];
$cor = $_POST['cor'];
$quantidade = $_POST['quantidade'];
$embalagem = $_POST['embalagem'];
$os = $_POST['os'];
$chassi = $_POST['chassi'];
$vendedorreponsavel = $_POST['vendedorreponsavel'];
$datapedido = $_POST['datapedido'];
$vendidodia = $_POST['vendidodia']; 
$consultor = $_POST['consultor'];


$sql = "INSERT INTO `pedido` (`prefixo`, `basico`, `cor`, `quantidade`, `embalagem`, `os`, `chassi`, `vendedorreponsavel`, `datapedido`, `vendidodia`, `consultor`,) VALUES ('$prefixo', '$basico', '$cor', '$quantidade', '$embalagem', '$os', '$chassi', '$vendedorreponsavel', '$datapedido', '$vendidodia', '$consultor')";
if (!$mysqli->query($sql)) 
{
$message = "J&aacute; existe um registo com os valores Prefixo e Chassi inseridos.";
}
else 
{
$message = "Registo inserido com sucesso!"; 
}
}
catch (Exception $ex) 
{
echo $ex->getMessage();
}
?>

Acontece o seguinte erro:

Notice: Undefined variable: mysql in C:\xampp\htdocs\Carro\cadastra_pedido.php on line 20

Fatal error: Call to a member function query() on null in C:\xampp\htdocs\Carro\cadastra_pedido.php on line 20

No que posso estar errando?

Link para o comentário
Compartilhar em outros sites

  • 0

Esquece a parte do try-catch que incluí por engano.

As credenciais de acesso à base de dados estão no ficheiro 'Config/config_sistema.php, certo? Tens de mudar o nome da variável $mysqli para o teu objecto de ligação à BD.

Se por acaso estás a usar a extensão mysql para acesso à base de dados, considera utilizar antes mysqli ou PDO pois essa extensão já não está a ser mantida nas versões mais recentes do PHP, pelo que não é boa prática continuar a usá-la em ambiente de produção.

Edit: Para além do que já escrevi, repara que tens uma vírgula a mais na listagem dos campos da tabela, a seguir ao campo consultor.

Editado por wootzor
Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Esquece a parte do try-catch que incluí por engano.

As credenciais de acesso à base de dados estão no ficheiro 'Config/config_sistema.php, certo? Tens de mudar o nome da variável $mysqli para o teu objecto de ligação à BD.

Se por acaso estás a usar a extensão mysql para acesso à base de dados, considera utilizar antes mysqli ou PDO pois essa extensão já não está a ser mantida nas versões mais recentes do PHP, pelo que não é boa prática continuar a usá-la em ambiente de produção.

Edit: Para além do que já escrevi, repara que tens uma vírgula a mais na listagem dos campos da tabela, a seguir ao campo consultor.

To me batendo aqui com esse código.

o código do config é esse:

<?php
// faz conexão com o servidor MySQL
$local_serve = "localhost";   // local do servidor
$usuario_serve = "root";  // nome do usuario
$senha_serve = "123";    // senha
$banco_de_dados = "sistema";   // nome do banco de dados


$conn = @mysql_connect($local_serve,$usuario_serve,$senha_serve) or die ("O servidor não responde!");


// conecta-se ao banco de dados
$db = @mysql_select_db($banco_de_dados,$conn) 
or die ("Não foi possivel conectar-se ao banco de dados!");




?>

E o do cadastra_pedido é esse:

<?php


try 
{
include "Config/config_sistema.php";
$prefixo = $_POST['prefixo'];
$basico = $_POST['basico'];
$cor = $_POST['cor'];
$quantidade = $_POST['quantidade'];
$embalagem = $_POST['embalagem'];
$os = $_POST['os'];
$chassi = $_POST['chassi'];
$vendedorreponsavel = $_POST['vendedorreponsavel'];
$datapedido = $_POST['datapedido'];
$vendidodia = $_POST['vendidodia']; 
$consultor = $_POST['consultor'];


$sql = "INSERT INTO `pedido` (`prefixo`, `basico`, `cor`, `quantidade`, `embalagem`, `os`, `chassi`, `vendedorreponsavel`, `datapedido`, `vendidodia`, `consultor`) VALUES ('$prefixo', '$basico', '$cor', '$quantidade', '$embalagem', '$os', '$chassi', '$vendedorreponsavel', '$datapedido', '$vendidodia', '$consultor')";
if (!$conn->query($sql)) 
{
$message = "J&aacute; existe um registo com os valores Prefixo e Chassi inseridos.";
}
else 
{
$message = "Registo inserido com sucesso!"; 
}
}
catch (Exception $ex) 
{
echo $ex->getMessage();
}
?>


  

Consegues me ajudar a tentar corrigir esse código?

Link para o comentário
Compartilhar em outros sites

  • 0

Dá algum erro ou simplesmente não retorna nada?

Suponho que a consulta nem sequer esteja a ser executada pois estás a usar a o driver mysql, que não tem interface orientada a objectos. Assim, a minha sugestão é que a substituas por mysqli.

O código fica basicamente igual:

<?php
// faz conexão com o servidor MySQL
$local_serve = "localhost";   // local do servidor
$usuario_serve = "root";  // nome do usuario
$senha_serve = "123";    // senha
$banco_de_dados = "sistema";   // nome do banco de dados

$conn = new mysqli($local_serve, $usuario_serve, $senha_serve) or die ("O servidor não responde!");

// conecta-se ao banco de dados
$db = $conn->select_db($banco_de_dados) or die ("Não foi possivel conectar-se ao banco de dados!");
<?php
 include "Config/config_sistema.php";
 $prefixo = $_POST['prefixo'];
 $basico = $_POST['basico'];
 $cor = $_POST['cor'];
 $quantidade = $_POST['quantidade'];
 $embalagem = $_POST['embalagem'];
 $os = $_POST['os'];
 $chassi = $_POST['chassi'];
 $vendedorreponsavel = $_POST['vendedorreponsavel'];
 $datapedido = $_POST['datapedido'];
 $vendidodia = $_POST['vendidodia']; 
 $consultor = $_POST['consultor'];


 $sql = "INSERT INTO `pedido` (`prefixo`, `basico`, `cor`, `quantidade`, `embalagem`, `os`, `chassi `, `vendedorreponsavel`, `datapedido`, `vendidodia`, `consultor`) VALUES ('$prefixo', '$basico', ' $cor', '$quantidade', '$embalagem', '$os', '$chassi', '$vendedorreponsavel', '$datapedido', '$vendidodia', '$consultor')";
if (!$conn->query($sql)) 
{
  $message = "J&aacute; existe um registo com os valores Prefixo e Chassi inseridos.";
}
else 
{
  $message = "Registo inserido com sucesso!"; 
}
Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Dá algum erro ou simplesmente não retorna nada?

Suponho que a consulta nem sequer esteja a ser executada pois estás a usar a o driver mysql, que não tem interface orientada a objectos. Assim, a minha sugestão é que a substituas por mysqli.

O código fica basicamente igual:

<?php
// faz conexão com o servidor MySQL
$local_serve = "localhost";   // local do servidor
$usuario_serve = "root";  // nome do usuario
$senha_serve = "123";    // senha
$banco_de_dados = "sistema";   // nome do banco de dados

$conn = new mysqli($local_serve, $usuario_serve, $senha_serve) or die ("O servidor não responde!");

// conecta-se ao banco de dados
$db = $conn->select_db($banco_de_dados) or die ("Não foi possivel conectar-se ao banco de dados!");
<?php
 include "Config/config_sistema.php";
 $prefixo = $_POST['prefixo'];
 $basico = $_POST['basico'];
 $cor = $_POST['cor'];
 $quantidade = $_POST['quantidade'];
 $embalagem = $_POST['embalagem'];
 $os = $_POST['os'];
 $chassi = $_POST['chassi'];
 $vendedorreponsavel = $_POST['vendedorreponsavel'];
 $datapedido = $_POST['datapedido'];
 $vendidodia = $_POST['vendidodia']; 
 $consultor = $_POST['consultor'];


 $sql = "INSERT INTO `pedido` (`prefixo`, `basico`, `cor`, `quantidade`, `embalagem`, `os`, `chassi `, `vendedorreponsavel`, `datapedido`, `vendidodia`, `consultor`) VALUES ('$prefixo', '$basico', ' $cor', '$quantidade', '$embalagem', '$os', '$chassi', '$vendedorreponsavel', '$datapedido', '$vendidodia', '$consultor')";
if (!$conn->query($sql)) 
{
  $message = "J&aacute; existe um registo com os valores Prefixo e Chassi inseridos.";
}
else 
{
  $message = "Registo inserido com sucesso!"; 
}

Erro: Fatal error: Call to a member function query() on resource in C:\xampp\htdocs\Carro\cadastra_pedido.php on line 20

Link para o comentário
Compartilhar em outros sites

  • 0

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Dá algum erro ou simplesmente não retorna nada?

Suponho que a consulta nem sequer esteja a ser executada pois estás a usar a o driver mysql, que não tem interface orientada a objectos. Assim, a minha sugestão é que a substituas por mysqli.

O código fica basicamente igual:

<?php
// faz conexão com o servidor MySQL
$local_serve = "localhost";   // local do servidor
$usuario_serve = "root";  // nome do usuario
$senha_serve = "123";    // senha
$banco_de_dados = "sistema";   // nome do banco de dados

$conn = new mysqli($local_serve, $usuario_serve, $senha_serve) or die ("O servidor não responde!");

// conecta-se ao banco de dados
$db = $conn->select_db($banco_de_dados) or die ("Não foi possivel conectar-se ao banco de dados!");
<?php
 include "Config/config_sistema.php";
 $prefixo = $_POST['prefixo'];
 $basico = $_POST['basico'];
 $cor = $_POST['cor'];
 $quantidade = $_POST['quantidade'];
 $embalagem = $_POST['embalagem'];
 $os = $_POST['os'];
 $chassi = $_POST['chassi'];
 $vendedorreponsavel = $_POST['vendedorreponsavel'];
 $datapedido = $_POST['datapedido'];
 $vendidodia = $_POST['vendidodia']; 
 $consultor = $_POST['consultor'];


 $sql = "INSERT INTO `pedido` (`prefixo`, `basico`, `cor`, `quantidade`, `embalagem`, `os`, `chassi `, `vendedorreponsavel`, `datapedido`, `vendidodia`, `consultor`) VALUES ('$prefixo', '$basico', ' $cor', '$quantidade', '$embalagem', '$os', '$chassi', '$vendedorreponsavel', '$datapedido', '$vendidodia', '$consultor')";
if (!$conn->query($sql)) 
{
  $message = "J&aacute; existe um registo com os valores Prefixo e Chassi inseridos.";
}
else 
{
  $message = "Registo inserido com sucesso!"; 
}

Erro: Fatal error: Call to a member function query() on resource in C:\xampp\htdocs\Carro\cadastra_pedido.php on line 20

Vamos esquecer esse codigo ai, consegues criar um codigo simples pra mim com um bd simples só pra ver se isso ai funciona?

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...