Ir para conteúdo

POWERED BY:

Arquivado

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

ronal-gato

impedir dados duplicados em php

Recommended Posts

Como faço para que não aconteça duplicidade no banco de dados por que cada id ficam diferentes mais os titulos dos posts podem se repetir mais como faço para que não aconteça duplicidades dos titulos das posts e apareça uma mensagem de erro na ora de cadastrar se ouver duplicidade no banco de dados algum pode me dar uma ajuda e uma exemplo de como programar isso em php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço para que não aconteça duplicidade no banco de dados por que cada id ficam diferentes mais os titulos dos posts podem se repetir mais como faço para que não aconteça duplicidades dos titulos das posts e apareça uma mensagem de erro na ora de cadastrar se ouver duplicidade no banco de dados algum pode me dar uma ajuda e uma exemplo de como programar isso em php

 

 

Tenta definir este campo como unique.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta definir este campo como unique.

como uso o esse codigo unique para que não haja duplicidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

como uso o esse codigo unique para que não haja duplicidade

 

Se estiver usando MySql com phpMyAdmin vai no phpMyAdmin selecione o banco de dados que você quer, a tabela e depois estrutura, em seguida vá em Mais que está na frente do campo que vai ser unique, é só escolher Adicionar índice únicose ele aceitar esse tipo vai aparecer Adicionar índice único como link, daí é só ativar. Se funcionar vai aparecer embaixo da tela em Índices "Nome chave" o campo que você selecionou e "Único" igual "sim". Se for outro banco pesquisa como setar campo como "unique".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se estiver usando MySql com phpMyAdmin vai no phpMyAdmin selecione o banco de dados que você quer, a tabela e depois estrutura, em seguida vá em Mais que está na frente do campo que vai ser unique, é só escolher Adicionar índice únicose ele aceitar esse tipo vai aparecer Adicionar índice único como link, daí é só ativar. Se funcionar vai aparecer embaixo da tela em Índices "Nome chave" o campo que você selecionou e "Único" igual "sim". Se for outro banco pesquisa como setar campo como "unique".

não encontrei mais tipo não teria como fazer isso em codigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não encontrei mais tipo não teria como fazer isso em codigo?

 

Então usa mysql_num_rows igual o amigo ai falou, uma "googlada" rápida e você acha o que precisa. Pode ser também mysql_affected_rows, mysql_result... pesquisa ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A idéia é mais ou menos essa:

$sua_variavel = $_POST ["sua_variavel"];

   $Sql = "SELECT * FROM sua_tabela WHERE coluna_tabela = '$sua_variavel'";
   $Resultado = executa($Sql);
   $total_registros = pg_num_rows($Resultado);
if ($total_registros >= 1) {  // Se numero de linhas encontradas/retornadas for 1 (um), indica que valor/variavel já esta cadastrada
   $erro=1;
   $msg_erro = "<center><b><font color=#FF0000>Valor já cadastrado!</font></b></center>";
}

 

Uso Postgre, adapte para MySql caso necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

alterar na tabela o campo para unique em mysql

ALTER TABLE `nome_tabela` ADD UNIQUE (`nome_campo`)

 

é melhor fazer alteração no banco, tipo se você usar outra aplicação para acessar o banco não vai ter problema, a regra tá no banco independente de aplicação

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, tem q fazer a verificação no banco antes de cadastrar. e ai condiciona. se existir, nao cadastra. se nao existir, cadastra.

 

ex:

$stm = $pdo->prepare("select * from TABELA where titulos ='$titulos '");
$stm->execute();


$nlinhas=$stm->rowCount(); 
if ($nlinhas!=0)
{
//Caso ja esteja um titulo cadastrado com o mesmo nome
echo"Titulo já cadastrado!
}
//Caso não esteja cadastrado
else
{
$stm = $pdo->prepare("INSERT INTO TABELA(titulo)VALUES('$titulo')");
$stm->execute();
echo" cadastrado com sucesso";

 

As opniões ai são validas. Mas, eu diria pra resolver isso no próprio php.

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.