Problema con len e con left

  • Creatore Discussione Creatore Discussione Freizer
  • Data di inizio Data di inizio

Freizer

Nuovo Utente
17 Dic 2010
5
0
0
Ho inserito in un sito una funzione che i permette di visualizzare solo i primi 500 caratteri di una notizia.

ho la condizione che se i caratteri sono meno di 500 deve scriverli tutti mentre in caso contrario scrive solo i primi 500 e poi va alla pagina del dettaglio.

solo che quando processo la lunghezza del campo dopo non rime lo visualizza.

il codice è questo:

Codice:
<%
strsql = "SELECT * FROM info WHERE info_pub = 'S' ORDER by id_info DESC"
Set rs = Server.CreateObject("ADODB.Recordset") 
Set rs = Conn.Execute(strsql)
	
	if not rs.eof then
	while not rs.eof
		if not rs.eof then
                        if len(rs("info_txt")) < 500 then
                        %>
				<%=rs("info_txt")%>
			<%	
                            else					
                        %>
				<%=left(rs("info_txt"),500)%>
			<%	
                            end if					
		rs.movenext
		end if
	wend
	else
	end if
%>

dove sbaglio?
 
ciao

ciao forse non è proprio cosi che si fa... quello che vuoi fare è che se un paragafo contiente meno di 500 caratteri allora lo scrivo tt altrimenti scrivo i primi 500 metto i ... e vicino dettagli per leggerlo tutto...mi sembra di aver capito che ti serve una cosa cosi giusto?
 
esatto mi serve che il testo venga visualizzato tutto se inferiore a 500 caratteri altrimenti deve fare uscire i puntini dopo 500 caratteri.

il problema è che il conteggio caratteri lo fa ma poi non scrive il testo contenuto in info_txt
 
lo sto guardando, non ho ancora provato.

ecco il codice mio:

Codice:
	<%
		strsql = "SELECT * FROM info WHERE info_pub = 'S' ORDER by id_info DESC"
		Set rs = Server.CreateObject("ADODB.Recordset") 
		Set rs = Conn.Execute(strsql)
		
			if not rs.eof then
			while not rs.eof
				if not rs.eof then
				%>
                    <div class="rightTxt2">
                        <p class="titolo"><a href="info.asp?id_info=<%=rs("id_info")%>"><%=rs("info_data")%> - <%=rs("info_titolo")%></a></p>
						<%	
                        if len(rs("info_txt")) < 500 then
                        %>
						<%=rs("info_txt")%>
						<%	
                            else					
                        %>
						<%=left(rs("info_txt"),500)%>
						<%	
                            end if					
                        %>
                        <p class="continua"><a href="info.asp?id_info=<%=rs("id_info")%>">continua</a></p>
		                <br class="spacer" />
                    </div>

				<%				
				rs.movenext
				end if
			wend
			else
			%>
                <p class="rightTxt1">nessuna notizia da visualizzare</p>
                
                <p class="rightPic"></p>
                
                <br class="spacer" />
			<%
			end if
    %>
 
prova a impostare proprio come codice quello che ti ho suggerito nel link
perche non sono sicuro ma quel left nn so se funzioni come dovrebbe
 
Niente da fare.
ho inserito entrambi codici che hai postato ma il problema è sempre lo stesso:
vede tutti i campi, magari fa anche il conteggio dei caratteri ma non visualizza il testo.

il codice modificato è:

Codice:
<%

sText = rs("info_txt")
iMaxChar = 500

sResult = Left(sText, iMaxChar)

If Len(sText) > iMaxChar Then  

sResult = sResult & "..."
End If

Response.Write sResult

%>

il risultato è:
http://www.ediltuttovolley.it/new/

nella home page la prima notizia è più corta di 500 la seconda è più lunga.

come vedi riesce a vedere il titolo, la data e tutto il resto ma non vede il testo
 
prova cosi

<%

sText = "quello che ti pare o quello che mi pare"
iMaxChar = 7

sResult = sText

If Len(sResult) > iMaxChar Then

sResult = Left(sResult, InStr(iMaxChar, sResult, " ")) & "..."
End If

Response.Write sResult

%>
 
grazie ora funziona.
in realtà mi ha fatto una cosa strana:

ho estratto prima tutti i campi assegnando loro un valore e nella funzione che non andava inserisco i valori che ho assegnato invece dei campi del database e stranamente funziona.

vabbè l'importante è che sia risolta la cosa.

Grazie di cuore
 

Discussioni simili