Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Funzione che non... funziona al primo giro

    Salve a tutti

    Ieri mi sono imbattuta in uno strano problema: ho una funzione eseguita durante un ciclo, che al primo giro non va
    A questo indirizzo potete vedere il risultato: la funzione controlla le estensioni dei file ed in base a questi assegna un iconcina con il link per scaricare o visualizzare il file.
    Dal secondo giro in poi funziona tutto, ma al primo fa tutto (scrive il nome giusto, mette il link corretto, ecc.) tranne assegnare l'iconcina Il problema si verifica in ogni caso, anche cambiando l'ordine con cui vengono visualizzati i file, quindi non è un problema di un file o un' estensione particolare
    Ci abbiamo ragionato in due, ma non ci siamo saltati fuori, per favore potete darci un'occhiata anche voi?

    Ecco il codice di download.asp

    codice:
    <%
    query_sql="select * from dati order by data desc;"
    set rs=server.CreateObject("ADODB.recordset")
    rs.Open query_sql,connection,3,3
    
    if not rs.EoF then
    
    
    
    	do while not rs.EoF%>
    	<h1><%=rs.fields("data")%> - <%=rs.fields("titolo")%></h1>
    
    	<%=rs.fields("testo")%>
    
    	SCARICA: 
    
    	
    	
    	
    		<%query_sql1="select * from downloads where iddato= " & rs.fields("id") & " order by descrizione DESC"
    		set rs1=server.CreateObject("ADODB.recordset")
    		rs1.Open query_sql1,connection,3,3
    		if not rs1.EoF then
    			 while not rs1.EoF
    				call AssegnaIcona (rs1.fields("nome"), d )
    			%>
    			
    				">[img]icone/<%= icona%>[/img]<%=rs1.fields("descrizione")%>
    
    		   
    
    	<%		rs1.movenext
    			wend
    		end if
    		rs1.close
    		set rs1=nothing
    	rs.movenext
    	loop
    	
    end if
    rs.close
    set rs=nothing
    %>
    ed ecco la funzione AssegnaIcona:

    codice:
    function AssegnaIcona (img, d)
    
    estensione= right (img, 3)
    	
    	Select Case lCase(estensione)
    					Case "avi"
    					icona = "avi"&d&".gif"
    						
    					Case "mpg"
    					icona = "avi"&d&".gif"
    					
    					Case "bmp"
    					icona = "bmp"&d&".gif"
    					
    					'ecc. ecc.						
    	End Select
    
    end function
    Avete idea di cosa non vada? Funziona TUTTO tranne l'assegnazione della prima iconcina (nell'esempio online i link non funzionano perchè non ho messo online i file, ma sono corretti)
    Allie Graywords

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Cosa stampa qui?

    codice:
    		if not rs1.EoF then
    			 while not rs1.EoF
                                    response.write(rs1("nome")):response.end 				
                             call AssegnaIcona (rs1.fields("nome"), d )
    Roby

  3. #3
    Grazie Roby

    Ho fatto la prova, stampa

    codice:
    D&D - 3.5Ed - Core - Deck of Many Things.pdf
    è il nome del primo file, è giusto
    Allie Graywords

  4. #4
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Ordine e disciplina (e chi non vuole restare qui...)
    Metti un'icone undefined.gif
    Comunque esistono le Query o dette anche viste.
    codice:
    <%
    Function GetIcon (img, d)
    Dim Ext
    	Ext = lCase( Mid(img,InStrRev(".")+1) )
    	Select Case Ext
    		Case "avi"
    			GetIcon = "avi"&d&".gif"	
    		Case "mpg"
    			GetIcon = "avi"&d&".gif"
    		Case "bmp"
    			GetIcon = "bmp"&d&".gif"	
    		Case Else
    			GetIcon = "undefined.gif"
    	End Select
    End Function
    
    Set Rs = Connection.Execute("select * from dati order by data desc;")
    if not Rs.EoF then
    	do while not rs.EoF
    	Response.Write "<h1>" & Rs("data") & " - " & Rs("titolo") & "</h1>
    "
    	Response.Write Rs("testo") & "
    "
    	Response.Write "SCARICA: 
    "
    		Set RsDown = Connection.Execute("select * from downloads where iddato= " & Rs("id") & " order by descrizione DESC")
    		if not RsDown.EoF then
    			 while not RsDown.EoF
    				Response.Write "<a target= ""_blank"" href=""public/" & RsDown("nome") & """>"
    				Response.Write "[img][/img]</a> " & RsDown("descrizione") & "
    "
    				RsDown.movenext
    			wend
    		end if
    		RsDown.close
    		Set RsDown=nothing
    	Rs.movenext
    	loop
    end if
    Rs.close
    Set Rs=nothing
    %>

  5. #5
    Grazie Baol, ho provato il tuo codice e mi restituisce questo errore:

    codice:
    26/10/2005 - Prova 2
    
    Questa è la seconda prova. Vediamo se visualizza i file!
    SCARICA: 
    
    Microsoft VBScript runtime error '800a01c2' 
    
    Wrong number of arguments or invalid property assignment: 'InStrRev' 
    
    /area_dl/function.asp, line 6
    La riga 6 è questa

    codice:
    Ext = lCase( Mid(img,InStrRev(".")+1) )
    Un'icona undefined l'avevo già messa, semplicemente nn avevo riportato tutte le voci della select case per non scrivere righe inutili
    Allie Graywords

  6. #6
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    codice:
    Ext = lCase( Mid(img,InStrRev(IMG,".")+1) )
    Ma la variabile d non la puoi dichiarare intermente alla funzione GetIcon?

  7. #7
    Originariamente inviato da Baol74
    codice:
    Ext = lCase( Mid(img,InStrRev(IMG,".")+1) )
    Funziona! VVoVe:
    grazie Baol! Dunque nn andava solo perchè il mio codice era incasinato?

    Ma la variabile d non la puoi dichiarare intermente alla funzione GetIcon?
    In effetti potrei anche fare così: è una variabile che serve per impostare quale set di icone utilizzare, siccome viene settata con un include, posso anche metterlo lì dentro.

    Grazie mille Baol
    Allie Graywords

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.