Ir para conteúdo

POWERED BY:

Arquivado

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

rbaccaro

Ordenar itens da tabela clicando nos botões

Recommended Posts

Olá amigos, o que eu preciso é simples, procurei em todo o forum e não encontrei, ou passou despercebido.

 

Tenho um banco de dados de música com as tabelas:

 

Id | Musica | Foto | Letra | Genero | Artista

 

Id | Genero

 

Id | Artista

 

Id | Ordem

 

Preciso ordenar as 10 primeiras musicas e alterar essa ordem durante o dia através de botões para cima e para baixo e

que fosse gravado no banco na tabela Ordem e que sempre que fosse alterado uma musica, as demais também receberiam outra

posição, sem ter de alterar uma a uma.

 

Ex:

Musica: Ordem:

Musica A 1

Musica B 2

Musica C 3

Musica D 4

.... ...

 

Alterando a Ordem:

 

Musica: Ordem:

Musica C 1

Musica B 2

Musica A 3

Musica D 4

... ...

 

Alguem teria uma função ou como fazer isso. Desde já agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que ficaria melhor seria ter uma iNtegração com flash ou silverlight, de você alimenta o flash pelos dados do banco, feito o SELECT TOP 10 usando um RND na string SQL ORDER BY RND(INT(NOW*[id])-NOW*[id])

ou o randomize no código

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo o que entendi, essa ordenação será feita manualmente por um usuário através de uma interface.

sendo assim, poste o codigo de como voce está fazendo e o erro para que possamos ajuda-lo.

caso, esteja procurando uma ideia de como fazer, sugiro os passos abaixo:

 

html + asp:

 

- tela html com a lista das musicas que estão na tabela ordem (se vazia, busca da tabela musica)

- execução do formulario com 2 passos:

- limpar tabela ordem

- gravar as 10 primeiras musicas da lista enviada pelo formulario html

 

qualquer DÚVIDA estamos a disposição, mas nao para fazer o código completo.

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um select com rand não resolve ?

 

 

 

 

Ja tentei Vinicius, não deu resultado esperado, pois as alterações serão efetuadas via navegador.

 

o que ficaria melhor seria ter uma iNtegração com flash ou silverlight, de você alimenta o flash pelos dados do banco, feito o SELECT TOP 10 usando um RND na string SQL ORDER BY RND(INT(NOW*[id])-NOW*[id])

ou o randomize no código

 

Vou testar, pra ver se resolve.

 

pelo o que entendi, essa ordenação será feita manualmente por um usuário através de uma interface.

sendo assim, poste o codigo de como voce está fazendo e o erro para que possamos ajuda-lo.

caso, esteja procurando uma ideia de como fazer, sugiro os passos abaixo:

 

html + asp:

 

- tela html com a lista das musicas que estão na tabela ordem (se vazia, busca da tabela musica)

- execução do formulario com 2 passos:

- limpar tabela ordem

- gravar as 10 primeiras musicas da lista enviada pelo formulario html

 

qualquer DÚVIDA estamos a disposição, mas nao para fazer o código completo.

 

abraços

 

Gostei da dica, vamos tentar desenvolver o código em 2 passos pra ver se dá resultado, informo logo, se tiver mais sugestões, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o banco de dados que você esta usando ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz diversos testes, e nada deu certo,

Criei a tabela para Update da Posição, tudo ocorre bem, faz a alteração correta, o problema é que não consigo fazer com que as outras musicas alterem a posição de acordo com a inclusão de uma nova posição. Se tenho musicas nas posições de 1 a 10 e colocar uma nova musica na posição 5, a tabela vai ficar com 2 musicas na posição 5, sendo que o que preciso é que a que esta na 5 mude para a 6 e a 6 para 7 e assim sucessivamente.O codigo que fiz foi o seguinte:

 

<!--#include file="Includes/Config.asp" -->
<%
Call AbreBd

Dim VarAct

VarAct = Request.QueryString("Act")

Dim VarIDUpdate
Dim VarIdCateg
Dim VarIdArt
Dim VarIdPos

VarIdCateg = Replace(Request.Form("IdCateg"),"'","''")
VarIdArt = Replace(Request.Form("IdArt"),"'","''")
VarIdPos = Replace(Request.Form("IdPos"),"'","''")


VarIDUpdate = Request.QueryString("idupdate")

If VarAct = "" Then
Set Posicao = Conn.execute("SELECT * FROM Radio WHERE Id="&VarIDUpdate)
End if


%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="title" content="">
<meta name="url" content="">
<meta name="language" content="Portugues">
<meta name="keywords" content="">
<meta name="description" content="">
<link href="includes/styles.css" rel="stylesheet" type="text/css" media="screen" />
<title>As 10 Mais</title>

</head>

<body> 

	  <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
         <tr>
           <td height="10"></td>
         </tr>
         <tr>
           <td align="center" class="TituloCinzaMedio">ALTERA POSIÇÃO</td>
         </tr>
         <tr>
           <td align="center"> </td>
         </tr>
	  <% If VarAct = "" Then %>
	  <table align="center" width="60%">
  		<form action="AlteraPosicao.asp?Act=Alterar&idupdate=<%=Posicao("Id")%>" method="post" name="Id">


<%Set CategoriaSel = Conn.Execute("SELECT * FROM Categorias WHERE IdCateg="&Cint(Posicao("IdCateg")))%> 
 <tr>
   <td width="46%" align="right" class="TituloCinzaMedio">Gênero Musical:: </td>
   <td width="54%" class="TituloCinzaMedio"><input name="IdCateg" type="text" id="IdCateg" value="<%=CategoriaSel("Categoria")%>" size="30"></td>
  </tr>
<%Set ArtistaSel = Conn.Execute("SELECT * FROM Artistas WHERE IdArt="&Cint(Posicao("IdArt")))%>   
 <tr>
   <td align="right" class="TituloCinzaMedio">Artista:: </td>
   <td class="TituloCinzaMedio"><input name="IdArt" type="text" id="IdArt" value="<%=ArtistaSel("Artista")%>" size="30"></td>
   </tr>

   <tr>
   <td align="right" class="TituloCinzaMedio">Musica:: </td>
   <td class="TituloCinzaMedio"><input name="Musica" type="text" id="Musica" value="<%=Posicao("Musica")%>" size="30"></td>
   </tr>

 <tr>
   <td align="right" class="TituloCinzaMedio">Posicao:: </td>
   <td class="TituloCinzaMedio"><input name="IdPos" type="text" id="IdPos" value="<%=Posicao("IdPos")%>" size="30"></td>

 </tr>


		<tr><td colspan='2' align='center'><input type='submit' value='Atualizar'></td></tr>
  		</form>
  		<tr>
       	  <td colspan="2" class="TituloCinzaEscuro" align="center"><br><%=voltarAdmin%></td>
     		</tr>
	  </table>
  	  <%
  	  ElseIf VarAct = "Alterar" Then

	  If VarIdCateg = "" Then
	  	Response.Write "<tr><td align='center' class='TituloVermelho'>Insira a Categoria!<br><br>"& VoltarAdmin &"</td></tr>"
	  Else


		With Response
			.Write "<table align='center' width='250'>"
			.Write "<form action='AlteraPosicao.asp?Act=Confirma&idupdate="&VarIdUpdate&"' method='post' name='Inserir'>"

			.Write "<input type=hidden value='"&VarIdCateg&"' name='IdCateg'>"
			.Write "<input type=hidden value='"&VarIdArt&"' name='IdArt'>"
			.Write "<input type=hidden value='"&VarIdPos&"' name='IdPos'>"


			.Write "<tr><td colspan='2' class='TituloCinzaEscuro' align='center'>Confira seus dados abaixo: </td></tr>"
			.Write LinhaHorizontal2
			.Write "<tr><td align='right' class='TituloCinzaEscuro'>Categoria:: </td><td class='TituloAzulEscuro'>" & VarIdCateg & "</td></tr>"
			.Write LinhaHorizontal2
			.Write "<tr><td align='right' class='TituloCinzaEscuro'>Artista:: </td><td class='TituloAzulEscuro'>" & VarIdArt & "</td></tr>"
			.Write LinhaHorizontal2
			.Write "<tr><td align='right' class='TituloCinzaEscuro'>Posicao:: </td><td class='TituloAzulEscuro'>" &VarIdPos& "</td></tr>"

			.Write "<tr><td colspan='2' align='center'><input type='Submit' name='confirma' class='BotaoSubmit' value='Confirmar'>  <input type='button' value='Corrigir' onClick='javascript:history.go(-1)' class='BotaoSubmit'></td></tr>"
			.Write "</form></table>"
			End With
		End If
	  End If

	If VarAct = "Confirma" Then


VarIdCateg = Request.Form("IdCateg")
VarIdArt = Request.Form("IdArt")
VarIdPos = Request.Form("IdPos")

		strQuery = "UPDATE radio SET IdPos = '"&VarIdPos&"' WHERE Id ="&VarIDUpdate


'Executaa inserção no Banco de Dados 
Set objRs = Conn.Execute(strQuery)

'"APAGA" qualquer instancia que possa ter no objeto objRs e objConn
Set objRs = Nothing


		Response.Write "<tr><td align='center' class='TituloCinzaEscuro'>Atualização efetuada com sucesso!<br><br><a href='Visual.asp' class='TituloCinzaEscuro'>Voltar</a></td></tr>"
  	End If
  	%>
       </table>

</body>
</html>	

 

Tentei usar o codigo abaixo para fazer as alterações das outras posições, mas também não deu certo:

 

Set Posicao1 = Conn.execute("SELECT * FROM Radio WHERE IdPos<="&VarIdPos&" ORDER BY IdPos ASC")

strQuery = "UPDATE radio SET IdPos = ('IdPos')+1 WHERE IdPos >="&VarIdPos
strQuery = "UPDATE Radio SET IdPos = '"&VarIdPos&"' WHERE Id ="&VarIDUpdate

 

Se alguem puder me dar uma luz de como poderia resolver esse problema, agradeço.

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.