Jump to content
Fórum Script Brasil
  • 0

Dados Repetidos PHP


jgasper
 Share

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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.

Edited by wootzor
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647.1k
×
×
  • Create New...