Ir para conteúdo

POWERED BY:

Arquivado

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

Guybrush

Erro Array + Checkbox + Deletar Bd

Recommended Posts

ASP

[*]<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>

 

[*]<script>

 

[*]function voltar()

 

[*] {

 

[*] location.href "admin.asp";

 

[*] }

 

[*]</script>

 

[*]<%

 

[*] var db Server.CreateObject("ADODB.Connection");

 

[*] var rs Server.CreateObject("ADODB.RecordSet");

 

[*] var sql, erro=0;

 

[*] db.Open("marelserver","sa","sql");

 

[*] rs.Open("select * from forum_tp;",db);

 

[*]

 

[*] var cont Request.QueryString("deletar").Count;

 

[*] var del = new Array(cont);

 

[*] var x;

 

[*]

 

[*] if(Request.QueryString("Submit")=="Excluir")

 

[*] {

 

[*] for(x=1; x<=cont; x++)

 

[*] {

 

[*] del[x] Request.QueryString("deletar")(x);

 

[*] sql "delete from forum_tp where id_tipo="+del[x];

 

[*] try

 

[*] {

 

[*] db.Execute(sql);

 

[*] }

 

[*] catch(err)

 

[*] {

 

[*] Response.Write("<BR><B>Houve um Erro: </b>"+err.Description);

 

[*] Response.Write("<BR><B>Número: </b>"+err.Number);

 

[*] erro++;

 

[*] }

 

[*] if(erro==0) 

 

[*] { 

 

[*] Response.Write("<center><b>"+del[x]+"</b> Foi Deletado com Sucesso.</center><br>"); 

 

[*] }

 

[*] }

 

[*] if(erro==0) { Response.Write("<center><br><b><h3>Atualizando Dados...</h3></b></center><br><script>setTimeout('voltar()',3000);</script>"); }

 

[*] } // Final do Query String

 

[*]

 

[*]%>

 

[*]<form action="admin.asp" method="get">

 

[*] <table width="240" height="84" border="1" align="center" cellpadding="0" cellspacing="0">

 

[*] <tr> 

 

[*] <td width="94"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="2">Selecionar</font></strong></font></div></td>

 

[*] <td width="30"> <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="2">ID</font></strong></font></div></td>

 

[*] <td width="108"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="2">Categoria</font></strong></font></div></td>

 

[*] </tr>

 

[*] <%

 

[*] while(!rs.EOF)

 

[*] {

 

[*]%>

 

[*] <tr> 

 

[*] <td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif">

 

[*]  <input type="checkbox" name="deletar" value="<%=rs("id_tipo")%>">

 

[*] </font></div></td>

 

[*] <td><div align="center"><font size="2" face="Verdana"><B><%=rs("id_tipo")%></B></font></div></td>

 

[*] <td><div align="center"><font size="2" face="Verdana"><B><%=rs("ds_tipo")%></B></font></div></td>

 

[*] </tr>

 

[*] <%

 

[*] rs.MoveNext();

 

[*] }

 

[*]%>

 

[*] <tr> 

 

[*] <td height="29" colspan="232"

 

[*] <div align="center">

 

[*] <input type="submit" name="Submit" value="Excluir">

 

[*] </div></td>

 

[*] </tr>

 

[*] </table>

 

[*]</form>

 

Simplismente não deleta da tabela, e sempre retorna o Erro (quando vou deletar 2 por exemplo):

 

Houve um Erro: undefined

Número: undefined

Houve um Erro: undefined

Número: undefined

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP

[*]<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>

 

[*]<script>

 

[*]function voltar()

 

[*] {

 

[*] location.href "admin.asp";

 

[*] }

 

[*]</script>

 

[*]<%

 

[*] var db Server.CreateObject("ADODB.Connection");

 

[*] var rs Server.CreateObject("ADODB.RecordSet");

 

[*] var sql = new Array(4);

 

[*] var erro=0;

 

[*] db.Open("marelserver","sa","sql");

 

[*] rs.Open("select * from forum_tp order by ds_tipo;",db);

 

[*]

 

[*] var cont Request.QueryString("deletar").Count;

 

[*] var del = new Array(cont);

 

[*]

 

[*] if(Request.QueryString("Submit")=="Excluir")

 

[*] {

 

[*] for(var x=1; x<=cont; x++)

 

[*] {

 

[*] del[x] Request.QueryString("deletar")(x);

 

[*] sql[1] "SELECT msg.id_msg msgID, msg.id_tipo, res.id_resposta resID ";

 

[*] sql[1] +"FROM forum_msg msg, forum_resposta res WHERE msg.id_tipo="+del[x]+" AND msg.id_msg=res.id_msg";

 

[*] try

 

[*] {

 

[*] var cmd db.Execute(sql[1]);

 

[*] if(cmd("resID")=="" || cmd("resID")==null || cmd("resID")=="undefined"){ cmd("resID")==0; }

 

[*] if(cmd("msgID")=="" || cmd("msgID")==null || cmd("msgID")=="undefined"){ cmd("msgID")==0; }

 

[*] }

 

[*] catch(err)

 

[*] {

 

[*] Response.Write("<BR><B>Houve um Erro: </b>"+err.Description);

 

[*] Response.Write("<BR><B>Número: </b>"+err.Number);

 

[*] erro++;

 

[*] Response.Write('<BR>'+erro);

 

[*] }

 

[*] if(erro==0) 

 

[*] { 

 

[*] sql[2] "DELETE FROM forum_resposta WHERE id_resposta="+cmd("resID");

 

[*] sql[3] "DELETE FROM forum_msg WHERE id_msg="+cmd("msgID");

 

[*] sql[4] "DELETE FROM forum_tp WHERE id_tipo="+del[x];

 

[*] try {

 

[*] db.Execute(sql[2]);

 

[*] db.Execute(sql[3]); 

 

[*] db.Execute(sql[4]);

 

[*] }

 

[*] catch(err)

 

[*] {

 

[*] Response.Write("<BR><B>Houve um Erro: </b>"+err.Description);

 

[*] Response.Write("<BR><B>Número: </b>"+err.Number);

 

[*] erro++;

 

[*] Response.Write("<BR><B>Número de Erros: </b>"+erro);

 

[*] }

 

[*] Response.Write("<center><b>"+del[x]+"</b> Foi Deletado com Sucesso.</center><br>"); 

 

[*] }

 

[*] }

 

[*] if(erro==0) { Response.Write("<center><br><b><h3>Atualizando Dados...</h3></b></center><br><script>setTimeout('voltar()',3000);</script>"); }

 

[*] } // Final do Query String

 

[*]

 

[*]%>

 

[*]<form action="admin.asp" method="get">

 

[*] <table width="240" height="84" border="1" align="center" cellpadding="0" cellspacing="0">

 

[*] <tr> 

 

[*] <td width="94"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="2">Selecionar</font></strong></font></div></td>

 

[*] <td width="30"> <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="2">ID</font></strong></font></div></td>

 

[*] <td width="108"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="2">Categoria</font></strong></font></div></td>

 

[*] </tr>

 

[*] <%

 

[*] while(!rs.EOF)

 

[*] {

 

[*]%>

 

[*] <tr> 

 

[*] <td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif">

 

[*]  <input type="checkbox" name="deletar" value="<%=rs("id_tipo")%>">

 

[*] </font></div></td>

 

[*] <td><div align="center"><font size="2" face="Verdana"><B><%=rs("id_tipo")%></B></font></div></td>

 

[*] <td><div align="center"><font size="2" face="Verdana"><B><%=rs("ds_tipo")%></B></font></div></td>

 

[*] </tr>

 

[*] <%

 

[*] rs.MoveNext();

 

[*] }

 

[*]%>

 

[*] <tr> 

 

[*] <td height="29" colspan="232"

 

[*] <div align="center">

 

[*] <input type="submit" name="Submit" value="Excluir">

 

[*] </div></td>

 

[*] </tr>

 

[*] </table>

 

[*]</form>

 

[*]<% db.Close %>

 

Minha nova versão...

Erro na query:

 

sql[1] = "SELECT msg.id_msg msgID, msg.id_tipo, res.id_resposta resID ";

sql[1] += "FROM forum_msg msg, forum_resposta res WHERE msg.id_tipo="+del[x]+" AND msg.id_msg=res.id_msg";

Compartilhar este post


Link para o post
Compartilhar em outros sites

em asp não tem estas presepadas pra concatenarsql[1] += que erro ta dando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Response.Write(sql[1]+"<BR>"+sql[2]+"<BR>"+sql[3]+"<BR>"+sql[4]);

 

SQL[1]

SELECT msg.id_msg msgID, msg.id_tipo, res.id_resposta resID FROM forum_msg msg, forum_resposta res WHERE msg.id_tipo=49 AND msg.id_msg=res.id_msgSELECT msg.id_msg msgID, msg.id_tipo, res.id_resposta resID FROM forum_msg msg, forum_resposta res WHERE msg.id_tipo=49 AND msg.id_msg=res.id_msg

 

SQL[2]

DELETE FROM forum_resposta WHERE id_resposta=11

 

SQL[3]

DELETE FROM forum_msg WHERE id_msg=26

 

SQL[4]

DELETE FROM forum_tp WHERE id_tipo=49

 

Erro:

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][ODBC SQL Server Driver]

DELETE statement conflicted with COLUMN REFERENCE constraint 'fk_forum_tp_msg'. The conflict occurred in database 'SAM', table 'forum_msg', column 'id_tipo'.

/asp/Scripts/forum/admin.asp, line 35

Linha 26 var cmd = db.Execute(sql[1]);

 

Linha 33 db.Execute(sql[2]);

Linha 34 db.Execute(sql[3]);

Linha 35 db.Execute(sql[4]);

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigado "Mestre dos Mestres" Mr. marioufpa

 

Eu tava deletando um dado errado

só mudei

 

DELETE FROM forum_msg WHERE id_msg=26

 

para

 

DELETE FROM forum_msg WHERE id_tipo=26

 

e pronto!

vlw ae por sua atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigado "Mestre dos Mestres" Mr. marioufpa

 

Eu tava deletando um dado errado

só mudei

 

DELETE FROM forum_msg WHERE id_msg=26

 

para

 

DELETE FROM forum_msg WHERE id_tipo=26

 

e pronto!

vlw ae por sua atenção!

de nada, mas eu não fiz nada http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

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.