Ir para conteúdo

POWERED BY:

Arquivado

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

Fabiano Magno Pechibella

Evitar Registro Duplicado

Recommended Posts

Galera o mesmo script so que em ASP? Como fica?

 

PHP

 

$nome = $_POST["nome"];

 

$re = mysql_query("select count(*) as total from tabela where nome = '$nome'");

 

$total = mysql_result($re, 0, "total");

 

if ($total == 0) {

 

mysql_query("INSERT INTO tabela VALUES ('', '$nome')");

 

}

else{

 

echo"Usuario ja Cadastrado";

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de fazer um INSERT no banco de dados dê um SELECT para ver se já existe os dados, olha este exemplo:

 

    <% ‘incluir_action.asp => fazer a inclusao no BD, antes fazendo uma verificaçao

   ‘no BD através de SQL Select if not rs.eof then

   ‘redireciono para incluir_form.asp?msgeof=1 else

   ‘incluo no bd atraves da SQL Insert e redireciono para adiministraçao.asp?msg=1

   ‘e lá receberá um mensagem de sucesso

   Option explicit

   ‘declaro as var

   dim varlogin, varemail, varsenha, conexao, conDBQ, constring, rsselect, SQLselect, rsinsert, SQLinsert

   ‘recupero todos os dados

   varlogin=trim(request.form(“login”))

   varsenha=trim(request.form(“senha”))

   varemail=trim(request.form(“email”))

   ‘crio a conexao

   %>

   <!–#include file=”conn/conexao1.asp”–>

   <% ‘abrir a conexao

   call abreconexao

   ‘crio o rsselect para verificar se os dados jah estaun cadastrados

   set rsselect=server.createobject(“ADODB.Recordset”)

   ‘crio o SQLselect

   SQLselect=”SELECT login FROM login WHERE login=’”&varlogin&”‘”

   rsselect.open SQLselect,conexao,1,3

   if not rsselect.eof then

   response.redirect(“incluir_form_treina.asp?msgeof=1″)

   set rsselect=nothing

   else

   ‘crio o rsinsert para inseiri os dados no bd

   set rsinsert=server.createobject(“ADODB.Recordset”)

   ‘crio o SQLinsert pra incluir no bd

   SQLinsert=”INSERT INTO login(login,senha,email) values(‘”&varlogin&”‘,’”&varsenha&”‘,’”&varemail&”‘)”

   rsinsert.open SQLinsert,conexao,1,3

   response.redirect(“administracao_treina.asp?msg=1″)

   set rsinsert=nothing

   end if

   call fechaconexao %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera o mesmo script so que em ASP? Como fica?

 

PHP

 

$nome = $_POST["nome"];

 

$re = mysql_query("select count(*) as total from tabela where nome = '$nome'");

 

$total = mysql_result($re, 0, "total");

 

if ($total == 0) {

 

mysql_query("INSERT INTO tabela VALUES ('', '$nome')");

 

}

else{

 

echo"Usuario ja Cadastrado";

 

}

 

seria mais ou menos assim

 




nome = request.form("nome")

sql = "select count(*) as total from tabela where nome='"&nome&"'"
set rs = conexao.execute(sql)
if rs("total") = 0 then
o seu insert
else
response.write "Usuario ja Cadastrado"
end if


 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

não precisa nen contar use apenas o if not rsselect.eof then, então é porque existe esse arquivo

 

e este code remove seus registros duplicados

<%@Language="vbscript" %>
       <%
       Const adOpenForwardOnly = 0
       Const adLockReadOnly = 1
       Const adCmdText = &H0001
       Const adUseClient = 3
       %>
       <!DOCTYPE HTML Public "-//W3C//DTD HTML 4.0 Transitional//EN">
       <HTML>
       <HEAD>
       <TITLE>Remover registros duplicados</TITLE>
       <STYLE TYPE="text/css">
       BODY { background-color: #336699; font-family: Verdana; font-size: 10pt; color: #FFFFFF }
       TD { font-family: Verdana; font-size: 10pt; color: #000000 }
       </STYLE>
       </HEAD>
       <BODY>
       <%
       sPassword = "admin" ' password 
       if Request("password") <> "" Then
               Session("Password") = Request("password")
       End if
       if Session("Password") <> sPassword Then
               Response.Write "<HTML><BODY><FORM ACTION=""removeduplicates.asp"" METHOD=""post"">Password: (CaSe SeNsiTivE) <INPUT TYPE=""password"" NAME=""password""><INPUT TYPE=""submit""></FORM>"
       Else
               delDub = False
               File = Request.ServerVariables("SCRIPT_NAME")
               File = StrReverse(File)
               Posi = Instr(File, "/")
               File = Left(File, Posi - 1)
               File = StrReverse(File)
               if Request.Form("db") <> "" Then
                       On Error Resume Next
                       DSNName = Request.Form("db")
                       sdbTable = Request.Form("tb")
                       spriKey = Request.Form("pk")
                       sdbField = Request.Form("fn")
                       sdbPath = "DBQ=" & Server.Mappath(DSNName) & ";Driver={Microsoft Access Driver (*.mdb)};"
                       strSQL = "SELECT COUNT(*) AS ttCount FROM " & sdbTable
                       Set strConn = Server.CreateObject("ADODB.Connection")
                       strConn.Open sdbPath
                       Set rs = Server.CreateObject("ADODB.Recordset")
                       rs.CursorLocation = adUseClient
                       rs.Open(strSQL), strConn, adOpenForwardOnly, adLockReadOnly, adCmdText
                       Set rs = strConn.Execute(strSQL)
                       tempArr = ""
                       totalFound = rs("ttCount")
                       rs.Close
                       Set rs = nothing
                       totalFound = CInt(totalFound)
                       Response.Write totalFound
                       Response.Write " records" & vbcrlf
                       Response.Write "<HR>" & vbcrlf
                       strSQL = "SELECT " & sdbField & "," & spriKey & " FROM " & sdbTable & " ORDER BY " & sdbField
                       Set rs = Server.CreateObject("ADODB.Recordset")
                       rs.CursorLocation = adUseClient
                       rs.Open(strSQL), strConn, adOpenForwardOnly, adLockReadOnly, adCmdText
                       if Err = 0 Then
                               For i = 0 To (totalFound - 1)
                                       rs.MoveFirst
                                       rs.Move(i)
                                       lookFor = rs.fields(sdbField)
                                       if lookFor = tempVal Then
                                               foundDups = rs.fields(spriKey)
                                               tempArr = tempArr & foundDups & ","
                                       End if
                                       tempVal = lookFor
                               Next
                               rs.Close
                               Set rs = nothing
                               if tempArr <> "" Then
                                       Response.Write "Primary Key ID contendo dados duplicados no campo selecionado:" & vbcrlf
                                       Response.Write "<BR>" & vbcrlf
                               End if
                               if tempArr = "" Then
                                       Response.Write "Não há registros duplicados encontrados." & vbcrlf
                               Else
                                       tempArr = Left(tempArr, Len(tempArr) - 1)
                                       Response.Write tempArr
                                       tempArr = Split(tempArr, ",", -1, 1)
                                       prCount = UBound(tempArr)
                                       prCount = prCount + 1
                                       Response.Write "<BR>" & vbcrlf
                                       For i = 0 To (prCount - 1)
                                               strSQL = "DELETE FROM " & sdbTable & " WHERE " & spriKey & " = " & tempArr(i)
                                               strConn.Execute(strSQL)
                                       Next
                               End if
                               delDub = True
                       Else
                               Response.Write Err.Description
                       End if
                       strConn.Close
                       Set strConn = nothing
                       if Err = 0 And delDub = True Then
                               if tempArr <> "" Then
                                       Response.Write "<BR><B>" & prCount & "</B> registro duplicado"
                                       if prCount <> 1 Then
                                               Response.Write "s"
                                       End if
                                       Response.Write " excluída com sucesso." & vbcrlf
                               End if
                       End if
               End if
       %>
       <HR><BR><DIV ALIGN="center"><SPAN id="result_box"><SPAN title="Remove duplicate database records" closure_hashCode_1phoep="158">Remover   duplicado registros de banco de dados</SPAN></SPAN></DIV>
       <FORM ACTION="<%=File %>" METHOD="post">
       <TABLE CELLPADDING="4" CELLSPACING="1" ALIGN="center" WIDTH="50%" STYLE="border: 1px outset" BGCOLOR="#FFFFFF">
       <TR>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9">Database:</TD>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9">
       <INPUT TYPE="text" SIZE="25" NAME="db" STYLE="text-align: right"><B>.mdb</B></TD></TR>
       <TR>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9"> Nome da Tabela:</TD>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9">
       <INPUT TYPE="text" SIZE="25" NAME="tb"></TD></TR>
       <TR>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9">Nome do Campo:</TD>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9">
       <INPUT TYPE="text" SIZE="25" NAME="fn"></TD></TR>
       <TR>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9">Primary Key:</TD>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9">
       <INPUT TYPE="text" SIZE="25" NAME="pk"></TD></TR>
       <TR>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9"> </TD>
       <TD WIDTH="50%" BGCOLOR="#E9E9E9">
       <INPUT TYPE="submit" VALUE="Remove Duplicates"></TD></TR></TABLE></FORM>
       <HR>
       <%
       End if
       %>
       </BODY>
       </HTML>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Galera,

 

Aqui estou novamento para sanar mais algumas duvidas sobre o ASP.

 

Galera, abaixo segue um trecho de codigo que não consigo solucionar.

 

 

sql = "SELECT COUNT(*) AS TOTAL FROM TBL WHERE id='"&id&"' AND prioridade='"&prioridade&"'"

 

set rs = conn.execute(sql)

 

if rs("TOTAL") = 0 then

 

else

 

sql = "INSERT INTO TBL (id, prioridade" & _

" values ("&request.querystring("id")&","&request.querystring("prioridade")&"

conn.execute(sql)

end if

 

else

Msg("A prioridade para este ID já esta cadastrada!")

end if

 

O que eu gostaria que este script fizesse é: Quando forem cadastrar alguma prioridade, o SELECT verifica se a prioridade para o ID já esta cadastrado, se cadastrado não deixa cadatrar e exibe a mensagem.

 

 

Obrigado pelo help.

 

[]'s

Fabiano Magno Pechibella

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria mais ou menos assim




sql = "SELECT id FROM TBL WHERE id='"&id&"' AND prioridade='"&prioridade&"'"
set rs = conn.execute(sql)
if rs.bof and rs.eof then
sql = "INSERT INTO TBL (id, prioridade" & _
" values ("&request.querystring("id")&","&request.querystring("prioridade")&"
conn.execute(sql)
else
response.write "A prioridade para este ID já esta cadastrada!"
end if


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o código do post #2 faz isso, inclusive, ficxa melhor se redirecionar para uma página de erro ou um pop-up que depois fecha automaticamente e redireciona para página onde houve o erro

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.