Ir para conteúdo

POWERED BY:

Arquivado

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

JMarila

Duplicidade de Dados

Recommended Posts

Preciso de ajuda no código abaixo, estou começando a programar e preciso que essa checagem tenha dois parametros para identificar a duplicidade do lancamento.

o segundo parametro seria esc_data_inicial

 

if (isset($_POST[$MM_flag])) {
$MM_dupKeyRedirect="duplicado.php";
$loginUsername = $_POST['esc_pac_cod'];
$LoginRS__query = sprintf("SELECT esc_pac_cod FROM escala WHERE esc_pac_cod=%s", GetSQLValueString($loginUsername, "text"));
mysql_select_db($database_refeicao, $refeicao);
$LoginRS=mysql_query($LoginRS__query, $refeicao) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);

 

Desde já agradeço a todos. Grande Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está embolando coisa demais eu acho.

 

Explique de forma mais objetiva!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho um cadastro para efetuar mais preciso verificar no banco de dados duas variaveis, por exemplo, o NOME e a Data de nascimento, antes de inserir, se já houver esse cadastro com as duas variaveis ele nao vai deixar cadastrar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Data de nascimento?? Uai, eu não poso nascer no mesmo dia que você não? ahahuhauha...

Acho que seria válido verificar o e-mail ou algum dado pessoal de uso único.

 

Pois bem, deixa eu te mostrar como seria +/-;

 

<?php

include "conexao.php";

$nome = $_POST[nome];
// aqui a gente pega os dados do bd
$query = mysql_query("SELECT * FROM cadastros WHERE nome='$nome'");
while($result = mysql_fetch_assoc($query)){
	$nomed = $_result['nome'];
}


if(mysql_num_rows($query) == 1){
	echo "Cadastro existente!";
} else {
	//executa a ação do cadastro
}

?>
Faça sua adaptação! Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Data de nascimento?? Uai, eu não poso nascer no mesmo dia que você não? ahahuhauha...

Acho que seria válido verificar o e-mail ou algum dado pessoal de uso único.

 

Pois bem, deixa eu te mostrar como seria +/-;

 

<?php

include "conexao.php";

$nome = $_POST[nome];
// aqui a gente pega os dados do bd
$query = mysql_query("SELECT * FROM cadastros WHERE nome='$nome'");
while($result = mysql_fetch_assoc($query)){
	$nomed = $_result['nome'];
}


if(mysql_num_rows($query) == 1){
	echo "Cadastro existente!";
} else {
	//executa a ação do cadastro
}

?>
Faça sua adaptação! Imagem Postada

 

Usei Data de nascimento como exemplo para duas variaveis, o codigo que você escreveu nao está validando somente a variavel nome?

Na verdade preciso que ele faça a checagem de dois parametros que seria a matricula e o mes, para que nao eja duplicado dois lancamentos da mesma pessoa no mesmo mes.

brigada pela força!

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca no WHERE da consulta os dois parâmetros. Se a contagem der 1, você continua o cadastro, se não, você pode exibir uma mensagem dizendo que já existe um usuário. Simples e prático ;D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá! Matrícula e Mês!!

 

<?php
$mat=$_POST["matricula"];
$mes=$_POST["mes"];
if(empty($mat) || empty($mes)){
 echo"<script>alert('Os campos matricula e mes devem estar preenchidos!!')</script>";//emito um alerta!
 echo"<script>history.go(-1)</script>";//volto a pag do formulario!
}
else{
   mysql_connect("");
   mysql_select_db("");
   $query=mysql_query("SELECT matricula, mes FROM tabela WHERE matricula='$mat' AND mes='$mes'");
   if(mysql_num_rows($query)>0){
    echo"<script>alert('Matricula e mes ja cadastrados!')</script>";
    echo"<script>history.go(-1)</script>";
   }
   else{
      echo"Cadastro efetuado com sucesso!";
   }
}

Vê se funciona ai!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só acrescentando, nessa linha do código postado pelo @falcao544

echo"Cadastro efetuado com sucesso!";

Deve ter o INSERT do SQL. daí seria algo assim:

$sql = "INSERT INTO tabela (matricula, mes) VALUES ('$mat', '$mes');
$exec = mysql_query($sql);
if ($exec){
    echo "Cadastrado com sucesso!";
}
else{
    echo "Erro ao cadastrar";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei adaptar no codigo que tenho mas nao funcionou, o codigo abaixo está pronto no dreamwaver quando escolho a opcao de usuario duplicado que ele me disponibiliza, só que ele não me dá a opção de verificar a existencia do cadastro com dois parametros, segue abaixo o código que funciona, mas só verifica a matricula do usuario, eu preciso adicionar também o mes que seria o campo da tabela esc_data_inicial. Mas uma vez obrigada!

 

// *** Redirect if username exists

$MM_flag="MM_insert";

if (isset($_POST[$MM_flag])) {

$MM_dupKeyRedirect="duplicado.php";

$loginUsername = $_POST['esc_pac_cod'];

$LoginRS__query = sprintf("SELECT esc_pac_cod FROM escala WHERE esc_pac_cod=%s", GetSQLValueString($loginUsername, "text"));

mysql_select_db($database_refeicao, $refeicao);

$LoginRS=mysql_query($LoginRS__query, $refeicao) or die(mysql_error());

$loginFoundUser = mysql_num_rows($LoginRS);

 

//if there is a row in the database, the username was found - can not add the requested username

if($loginFoundUser){

$MM_qsChar = "?";

//append the username to the redirect page

if (substr_count($MM_dupKeyRedirect,"?") >=1) $MM_qsChar = "&";

$MM_dupKeyRedirect = $MM_dupKeyRedirect . $MM_qsChar ."requsername=".$loginUsername;

header ("Location: $MM_dupKeyRedirect");

exit;

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só acrescentando, nessa linha do código postado pelo @falcao544

echo"Cadastro efetuado com sucesso!";

Deve ter o INSERT do SQL. daí seria algo assim:

$sql = "INSERT INTO tabela (matricula, mes) VALUES ('$mat', '$mes');
$exec = mysql_query($sql);
if ($exec){
    echo "Cadastrado com sucesso!";
}
else{
    echo "Erro ao cadastrar";
}

 

Valeu XD Tinha esquecido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei adaptar no codigo que tenho mas nao funcionou, o codigo abaixo está pronto no dreamwaver quando escolho a opcao de usuario duplicado que ele me disponibiliza, só que ele não me dá a opção de verificar a existencia do cadastro com dois parametros, segue abaixo o código que funciona, mas só verifica a matricula do usuario, eu preciso adicionar também o mes que seria o campo da tabela esc_data_inicial. Mas uma vez obrigada!

 

// *** Redirect if username exists

$MM_flag="MM_insert";

if (isset($_POST[$MM_flag])) {

$MM_dupKeyRedirect="duplicado.php";

$loginUsername = $_POST['esc_pac_cod'];

$LoginRS__query = sprintf("SELECT esc_pac_cod FROM escala WHERE esc_pac_cod=%s", GetSQLValueString($loginUsername, "text"));

mysql_select_db($database_refeicao, $refeicao);

$LoginRS=mysql_query($LoginRS__query, $refeicao) or die(mysql_error());

$loginFoundUser = mysql_num_rows($LoginRS);

 

//if there is a row in the database, the username was found - can not add the requested username

if($loginFoundUser){

$MM_qsChar = "?";

//append the username to the redirect page

if (substr_count($MM_dupKeyRedirect,"?") >=1) $MM_qsChar = "&";

$MM_dupKeyRedirect = $MM_dupKeyRedirect . $MM_qsChar ."requsername=".$loginUsername;

header ("Location: $MM_dupKeyRedirect");

exit;

}

}

 

 

 

Só acrescentando, nessa linha do código postado pelo @falcao544

echo"Cadastro efetuado com sucesso!";

Deve ter o INSERT do SQL. daí seria algo assim:

$sql = "INSERT INTO tabela (matricula, mes) VALUES ('$mat', '$mes');
$exec = mysql_query($sql);
if ($exec){
    echo "Cadastrado com sucesso!";
}
else{
    echo "Erro ao cadastrar";
}

 

Valeu XD Tinha esquecido!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito mais fácil fazer um campo como chave de verificação.

 

create table matricula (
id int primary key auto_increment,
matricula int,
mes smallint(2) zerofill unsigned,
chave varchar(32)
);

 

na hora de inserir, você faz a verificação com base na chave

 

insert into matricula(matricula, mes, chave) values('1313','1',md5(concat('1313','1')));

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.