Ir para conteúdo

POWERED BY:

Arquivado

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

klebeer_

usando Count para bloquear nº de opções, se ultrapassar

Recommended Posts

Olá pessoal, beleza estou aqui pedindo uma ajudinha para vocês novamente, pois NUNCA usei o comando COUNT.

 

Estou fazendo um site de Aluguel de Jogos online onde a pessoa pode escolher no mínimo 5 jogos e no máximo 10...OK!

O que esta acontecendo é que ele não esta contabilizando quantos jogos a pessoa ja pegou anteriormente e deixa livre para que ela possa escolher mais 10 por exemplo, gostaria de "TRAVAR" isso e mandar um Alert, por exemplo a pessoa ja tem 5 jogos escolhidos de um dia e no outro se ele for tentar escolher 10 ele contabiliza que ja havia 5 jogos e só deixa escolher mais 5 "travando" e mandando um Alert que ja haviam 5 jogos escolhidos anteriormente mais a quantidade de jogos que ele esta escolhendo... (rsssss) espero que tenham entendido.

 

Precisava fazer algo + ou - assim o total de jogos que a pessoa tem gravada la no BD + a quantidade de jogos que ela esta escolhendo agora até dar 10 e assim dar um ALERT

 

TotalJogos = TotalBD + TotalEscolhido

 

Comecei assim:

 

COUNT(id_jogos) AS TotalBD FROM tb_aluguel WHERE id_cad = &Session("idLog")&

Nem sei se pode usar assim com Session, mas pra variar ja deu erro:

 

Erro de compilação do Microsoft VBScript erro '800a0401'

 

Fim da instrução esperado

 

/jogos/centralpage-SelecionarJogos.asp, linha 531

 

COUNT(id_jogos) AS TotalBD FROM tb_aluguel WHERE id_cad = &Session("idLog")&

Como eu havia dito, NUNCA usei esse comando COUNT, então "ESTOU MAIS PERDIDO DO QUE AZEITONA EM BOCA DE BANGUELO"

peço um HELP URGENTE!!! Pois só falta isso pra entregar esse Site

Compartilhar este post


Link para o post
Compartilhar em outros sites

dependendo da situacaun melhor usar um contatdor normal ou a clausula count do SQL, pois se o seu bd for muito grande o recordcount do objeto recordset para apresentar queda de desempenho

e para usar o RecordCount , seu cursortype tem k ser recordset.CursorType = 3 (AdOpenDynamic)

 

exemplo:

<%
DIM mySQL, objRS
mySQL = "SELECT * FROM myTable" 
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open mySQL, objConn

' Count how many records exist
DIM iRecordCount
iRecordCount = 0
DO WHILE NOT objRS.EOF
iRecordCount = iRecordCount + 1
objRS.MoveNext
Loop

' Display result
Response.Write "(" & iRecordCount & ")"

objRS.Close
Set objRS = Nothing 
objConn.Close
Set objConn = Nothing
%> 

SQL COUNT

 

<!--#INCLUDE VIRTUAL="/includes/connection.asp" -->

<%
DIM mySQL, objRS
mySQL = "SELECT Count(*) AS intTotal FROM myTable" 
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open recSQL, objConn

' Display result
Response.Write objRS("intTotal")

objRS.Close
Set objRS = Nothing 
objConn.Close
Set objConn = Nothing
%> 
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form method='post' action='centralPage-ValidarOrdemJogo.asp' name='defineordem' id='defineordem'onsubmit='return validaformulario10(opcao1,opcao2,opcao3,opcao4,opcao5,opcao6,opcao7,opcao8,opcao9,opcao10);'>
                    <input type='hidden' name='idjogo1' id='idjogo1' value=''>
                    <input type='hidden' name='idjogo2' id='idjogo2' value=''>
                    <input type='hidden' name='idjogo3' id='idjogo3' value=''>
                    <input type='hidden' name='idjogo4' id='idjogo4' value=''>
                    <input type='hidden' name='idjogo5' id='idjogo5' value=''>
                    <input type='hidden' name='idjogo6' id='idjogo6' value=''>
                    <input type='hidden' name='idjogo7' id='idjogo7' value=''>
                    <input type='hidden' name='idjogo8' id='idjogo8' value=''>
                    <input type='hidden' name='idjogo9' id='idjogo9' value=''>
                    <input type='hidden' name='idjogo10' id='idjogo10' value=''>
                    <input type='hidden' name='sequenciajogo1' id='sequenciajogo1' value='' />
                    <input type='hidden' name='sequenciajogo2' id='sequenciajogo2' value='' />
                    <input type='hidden' name='sequenciajogo3' id='sequenciajogo3' value='' />
                    <input type='hidden' name='sequenciajogo4' id='sequenciajogo4' value='' />
                    <input type='hidden' name='sequenciajogo5' id='sequenciajogo5' value='' />
                    <input type='hidden' name='sequenciajogo6' id='sequenciajogo6' value='' />
                    <input type='hidden' name='sequenciajogo7' id='sequenciajogo7' value='' />
                    <input type='hidden' name='sequenciajogo8' id='sequenciajogo8' value='' />
                    <input type='hidden' name='sequenciajogo9' id='sequenciajogo9' value='' />
                    <input type='hidden' name='sequenciajogo10' id='sequenciajogo10' value='' />

<br />
					<%
					DIM rsaluguel
					Set rsaluguel = Server.CreateObject("ADODB.Recordset")
					rsaluguel.ActiveConnection = Conexao
					rsaluguel.Source = "SELECT COUNT(id_jogos) AS TotalBD FROM tb_aluguel WHERE id_cad = "&Session("idLog")&""
					rsaluguel.CursorType = 3
					rsaluguel.CursorLocation = 3
					rsaluguel.LockType = 2
					rsaluguel.Open()
					
					contador = 1
                    jogos = request("escolhejogo")
					IdJogo = Split(jogos, " ")					
					For i = LBOUND(IdJogo) to UBOUND(IdJogo)
                	Set rsjogos = Server.CreateObject("ADODB.Recordset")
					rsjogos.ActiveConnection = Conexao
					rsjogos.Source = "SELECT COUNT("&idJogo(i)&") AS TotalEscolhido FROM tb_aluguel WHERE id_cad = "&Session("idLog")&""
					contador = contador + 1
					Next
					If cdbl(TotalBD) + cdbl(TotalEscolhido) > 11 then
					SQL = "INSERT INTO tb_aluguel(id_cad, id_jogos, ordem) Values ("&Session("idLog")&", '"&IdJogo(i)&"', '"&contador&"')"
					Conexao.execute(sql)
					else%>
					<script>alert("Só pode escolher no máximo 10 jogos!");</script>)
                    <table border="0" width="100%" id="table1" height="69">
                        <tr>
                          <td height="18" colspan="5" align="center" class="texto"><span class="style81">Definir Ordem de Recebimento dos Jogos</span></td>
                        </tr>
                        <tr>
                          <td height="19" colspan="3" align="center" class="texto"><span class="style81">Nome do Jogo</span></td>
                          <td width="17%" height="19" align="center" class="texto"><span class="style81">Ordem de Recebimento</span></td>
                          <td align="center" class="texto"><span class="style81">Remover</span></td>
                        </tr>
                        <%               	
						Set rsjogos = Conexao.Execute("SELECT * FROM tb_aluguel order by ordem asc")

						Do While not rsjogos.Eof
						Set jogos = Conexao.Execute("SELECT * FROM tb_jogos where id_jogos = "&rsjogos("id_jogos")&"")
						%>
						<tr> 
                            <td width="4%" align="left" class="texto"><input name="FRM_ID" id="FRM_ID" type="hidden" size="5" value="<%=rsjogos("id_jogos")%>" /></td>
                          <td width="7%" align="right" class="texto"><span class="style81"><%=rsjogos("ordem")%>º - </span></td>
                          <td width="62%" align="left" class="texto"><%=jogos("titulo")%></td>
                          <td align="center" class="style81"><select name='opcoes' size='1' class="style81" id='opcao<%=rsjogos("ordem")%>' >
                            <option value='' selected>--Escolher--</option>
                            <option value='1' selected>1º opção</option>
                            <option value='2'>2º opção</option>
                            <option value='3'>3º opção</option>
                            <option value='4'>4º opção</option>
                            <option value='5'>5º opção</option>
                            <option value='6'>6º opção</option>
                            <option value='7'>7º opção</option>
                            <option value='8'>8º opção</option>
                            <option value='9'>9º opção</option>
                            <option value='10'>10º opção</option>
                          </select></td>
                            <td width="10%" align="center" class="texto"><a href='#void(0);'><img border='0' src='images/btn_lixeira.gif' width='16' height='16' onClick="confirmaexclusao('<%=jogos("titulo")%>','<%=rsjogos("id_jogos")%>','<%=rsjogos("id_jogos")%>');"></a>
                        </tr>
					<%
                    rsjogos.movenext
                    loop
					end if
					rsjogos.close
					set rsjogos = nothing
					%>
                    </table>
                  </p>
				<p align="center">
				  <span class="style81">
				<input type="submit" name="Atualizar" value="Atualizar" class="style81">
				     
				<input type="reset" name="Limpar" value="Limpar" class="style81">
				     
				<input type="button" name='Voltar' value='Voltar' class='style81' onClick="location.href='centraldoAssinante.asp';">
				  </span>
                </form>
					</p>
                  </td>
                </tr>
              </table></td>

Fiz assim mas qualquer coisa que eu clico Atualizar, Apagar, qualquer coisa vem o ALERT, gostaria que aparecesse somente quando passar dos 10 escolhidos e a soma com o que ja esta no BD!!!

Alguem poderia me ajudar????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem aki que ta dando Problema:

<%
                                        DIM rsaluguel
                                        Set rsaluguel = Server.CreateObject("ADODB.Recordset")
                                        rsaluguel.ActiveConnection = Conexao
                                        rsaluguel.Source = "SELECT COUNT(id_jogos) AS TotalBD FROM tb_aluguel WHERE id_cad = "&Session("idLog")&""
                                        rsaluguel.CursorType = 3
                                        rsaluguel.CursorLocation = 3
                                        rsaluguel.LockType = 2
                                        rsaluguel.Open()
                                        
                                        contador = 1
                    jogos = request("escolhejogo")
                                        IdJogo = Split(jogos, " ")                                      
                                        For i = LBOUND(IdJogo) to UBOUND(IdJogo)
                        Set rsjogos = Server.CreateObject("ADODB.Recordset")
                                        rsjogos.ActiveConnection = Conexao
                                        rsjogos.Source = "SELECT COUNT("&idJogo(i)&") AS TotalEscolhido FROM tb_aluguel WHERE id_cad = "&Session("idLog")&""
                                        contador = contador + 1
                                        Next
                                        If cdbl(TotalBD) + cdbl(TotalEscolhido) > 11 then
                                        SQL = "INSERT INTO tb_aluguel(id_cad, id_jogos, ordem) Values ("&Session("idLog")&", '"&IdJogo(i)&"', '"&contador&"')"
                                        Conexao.execute(sql)
                                        else%>
                                        <script>alert("Só pode escolher no máximo 10 jogos!");</script>)
o end if esta logo depois do loop.....e essa bagaça qualquer coisa ela da o ALERTe não mostra os jogos selecionados.....é mole??????

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa um SELECT TOP 10 do SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa um SELECT TOP 10 do SQL

 

Como eu falei no início do post eu nunca usei o comando COUNT então não tenho nem noçao por onde começar esse tipo...SELECT TOP 10 do SQL

 

ah! uma outra pergunta o count começa a contar do 0 ou do 1 pq quando peco para ele contar a quantidade de registros sempre me mostra 1 a menos como se iniciasse do 0, se inicia do 0 como faço pra ele começar do 1?????? Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A cláusula TOP é usada para especificar o número de registros para retornar.

 

A cláusula TOP pode ser muito útil em tabelas grandes com milhares de registros. Retornando um grande número de registros podem ter impacto no desempenho.

 

<%
DIM mySQL, objRS
mySQL = "SELECT Count(*) AS intTotal FROM myTable" 
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open recSQL, objConn

if objRS("intTotal") > 10 then
'redireciona para um pop-up que esta com 10 jogos
Else 
'...
'...aqui seu código
'...
end if

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.