Jump to content


helinho

Member Since 26/11/2005
Offline Last Active 12/05/2012, 09:12
-----

Topics I've Started

Update Com Vários Campos E Vários Registros (Asp)

22/07/2011, 04:17

Boa noite,

Estou apelando para este post porque já fiquei mais de 9 horas lendo, pesquisando e tentando montar um UPDATE MySQL em ASP para múltiplos registros com três campos cada. O mais perto que cheguei (pelo dúvidas frequentes do fórum) foi através do código abaixo.


Bom, eu tenho uma tabela "fotos" com os campos: id, titulo e sessao. Tenho duas páginas ASP: uma com o formulário que contém a tabela com todos os registros listados e outra que faz o update no MySQL a partir dos dados deste formulário.

1) fotos_listar.asp

<form name="formulario" method="post" action="fotos_editar.asp">

<% While Not RS.EOF ...%>
(...)

<input name="titulo_<%=(RSgaleria.Fields.Item("id").Value)%>" type="text" value="<%=(RSgaleria.Fields.Item("titulo").Value)%>" />
<input name="sessao_<%=(RSgaleria.Fields.Item("id").Value)%>" type="text" value="<%=(RSgaleria.Fields.Item("sessao").Value)%>" />

<input name="botao" type="submit" value="Atualizar todos os dados!" />

(...)
<% Whend ...%>

</form>


Obs: Na página acima ela me retorna perfeitamente uma tabela aparecendo todos os registros listados com seus respectivos campos (até aí tudo bem!). O problema está na próxima página! (acredito eu)




2) fotos_editar.asp
<!--#include file="inc_conexao.asp" -->
<%
Dim i
For i = 1 to Request.Form.Count

SQL1 = "SELECT * FROM fotos WHERE id= " &i
Set RSfotos = conexao.Execute(SQL1)

titulo = Int(Request("titulo"&i))
sessao = Int(Request("sessao"&i))
id = i

SQL2 = "UPDATE fotos SET titulo = '"&titulo&"', sessao = '"&sessao&"' " &_
" WHERE id = " & id
conexao.Execute SQL2
Next

conexao.close
Set RSfotos = Nothing


Response.Redirect("update_ok.asp")
%>



Obs: O UPDATE é realizado, porém com todos os valores em zero. Ou seja, é feito o update mas todos os registros e todos os campos ficam com o valor "0" inserido. Bom, isso foi o mais perto que "acho" ter chegado!



No mais agradeço a atenção!



=]

Problemas Com "Loop Ou Repeat Region" Em Menu Dinâmico Asp

30/05/2011, 12:19

Olá,

Eu tenho duas tabelas para montar um Menu Dinâmico através de um banco de dados MySQL. As tabelas são: "SESSOES" e "SUBSESSOES", elas estão relacionadas respectivamente pelos campos "id" e "cod_id" no intuito de montar um menu dinâmico em uma página ASP (produtos.asp).

A tabela "SESSOES" tem:

[id]..[sessao]
.1.....Menu 01
.2.....Menu 02
.3.....Menu 03
.4.....Menu 04


A tabela "SUBSESSOES" tem:

[id]..[cod_id]..[subsessao]
.1........1.........Submenu 01
.2........1.........Submenu 02
.3........1.........Submenu 03
.4........2.........Submenu 04
.5........2.........Submenu 05
.6........2.........Submenu 06
.7........3.........Submenu 07
.8........3.........Submenu 08
.9........3.........Submenu 09
.10......4.........Submenu 10
.11......4.........Submenu 11


• O SELECT da busca no BD é: "SELECT * FROM sessoes INNER JOIN subsessoes ON (sessoes.id = subsessoes.cod_id)"
• O Recordset é "RSmenu"
• Dentro da página "produtos.asp" eu tenho um Repeat Region montando o Menu Dinâmico como se segue abaixo:

<%
Dim Repeat__numRows
Dim Repeat__index

Repeat__numRows = -1
Repeat__index = 0
RSmenu_numRows = RSmenu_numRows + Repeat__numRows
%>


<% While ((Repeat__numRows <> 0) AND (NOT RSmenu.EOF)) %>

  <table>

    <tr> 
      <td>
      <b><%=(RSmenu.Fields.Item("sessao").Value)%></b>
      </td>
    </tr>
    
    <tr>
      <td>
      <%=(RSmenu.Fields.Item("subsessao").Value)%>
      </td>
    </tr>
    
    <tr>
      <td>
      <img src="images/linha.png"/>
      </td>
    </tr>
    
  </table>

<% Repeat__index = RRepeat__index+1
   Repeat__numRows = Repeat__numRows-1
   RSmenu.MoveNext()

   Wend
%>


Esse código acima está me retornando as informações colocando o nome da "sessao" correspondente a cada "subsessao" gerada, como se segue na imagem abaixo:
Posted Image


Porém eu gostaria que o código me retornasse o nome da "sessao" e logo abaixo toda respectiva "subssessao". Ou seja, eu gostaria que o código me retornasse igualzinho a imagem que se segue abaixo:
Posted Image


O quê preciso mudar para o Menu ficar assim?




<------------------------- SOLUÇÃO ENCONTRADA --------------------------->


Hoje eu consegui resolver o problema acima descrito para gerar um Menu Dinâmico a partir de um BD MySQL. É o seguinte: eu utilizei dois SQLs e o Do While/Loop para resolver a questão. O código funcionando corretamente segue abaixo.

1) Utilizei o SQL1 para SETar o RSmenu: "SELECT * FROM sessoes"
2) Utilizei o SQL2 para SETar o RSsubmenu: "SELECT * FROM subsessoes WHERE cod_id ='"&RSmenu("id")&"'"

CODE
<%
SQL1 = "SELECT * FROM sessoes"
Set RSmenu = conexao.execute(SQL1)
...

Do While Not RSmenu.EOF
Response.Write "<tr><td>"
If sessao = RSmenu("sessao") Then
Response.Write "<b>"&RSmenu("sessao")&"</b>"
Else
Response.Write "<a href='#'><b>"&RSmenu("sessao")&"</b></a>"
End If
Response.Write "</td></tr>"

SQL2 = "SELECT * FROM subsessoes WHERE cod_id ='"&RSmenu("id")&"'"
Set RSsubmenu = conexao.execute(SQL2)

If Not RSsubmenu.EOF Then
Do While Not RSsubmenu.EOF
Response.Write "<tr><td>"
Response.Write "<a href='#'>"&RSsubmenu("subsessao")&"</a>"
Response.Write "</td></tr>"
RSsubmenu.MoveNext
Loop
Response.Write "<tr><td><img src='images/linha.gif' width='180' height='1'/></td></tr>"
End If

RSmenu.MoveNext
Loop
%>


Sendo assim o meu Menu Dinâmico agora ficou assim:
Posted Image


Então este tópico agora está resolvido e espero poder ter ajudado!

IPB Skin By Virteq