Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: funzione di ricerca

  1. #1

    funzione di ricerca

    ciao a tutti,devo realizzare una funzione di ricerca di una parola all'interno di alcuni articoli inseriti in un db.
    penso che il mio modo di procedere sia giusto,però mi da un errore che è un po' che non riesco a correggere.
    ditemi se vedete qualcosa:

    codice:
    <div align="center">
              <center>
    			
    			<table border="0" cellpadding="5" style="border-collapse: collapse" width="96%" id="table20">
    				<tr>
    					<td style="border-bottom: 1px dotted #CC0000">
    					<font size="4" color="#CC0000">Risultati della ricerca</font>
    					
    
    
    					<%
    					ricerca = Request.Form("ricerca")
    					sql = "select * from articoli WHERE Testo like = '" & ricerca & "%' order by data desc"
    					rs.Open sql, conn, 1, 3 
    					
    					intConta = 1
                        i = 0
                        while (not rs.eof or rs.bof)
                        i = i + 1
                        if i MOD 2 = 0 then
                        colour = ("#EEEEEE")
                        else
                        colour = ("#FFFFFF")
                        end if
                        
                        if (intConta > 3) and (intConta <=10) then
    					
    					id = rs("ID")
    					data = rs("Data")
    					titolo = rs("Titolo")
    					%>
    					<table border="0" cellpadding="2" style="border-collapse: collapse" width="100%" id="table30">
    						<tr>
    							<td bgcolor="<%=colour%>" style="border-bottom: 1px solid #E4E4E4" width="69" valign="top" align="left">
    					           <font color="#999999">
    					           <%
    					           Response.Write ("(")
    					           Response.Write data
    					           Response.Write (")")
    					           %>
    					           </font>
    					        </td> 
    					        <td bgcolor="<%=colour%>" style="border-bottom: 1px solid #E4E4E4" valign="top" align="left">
    					        
    					           <a href="pag-articolo.asp?numero=<%=id%>">
    					           <font color="#CC0000">				
    					           <%
    					           Response.Write titolo
    					           %>
    					           </font>
    					           </a>
    					        
    					        </td>
    					    </tr>
    					</table>
    					<%						
    					end if
                        rs.movenext()
                        intConta = intConta + 1
                        wend					
    					%>	
    				</tr>
    			</table>
    			</center>
            </div>
    l'errore è:


    Microsoft JET Database Engine error '80040e14'

    Syntax error (missing operator) in query expression 'Testo like = 'piacenza%''.

    /ricerca.asp, line 48

    e la linea 48 è quella rossa.
    carico in una variabile quello che l'utente scrive nel form e poi me lo riprendo con un request.form.io adesso per esempio avevo acritto piacenza.
    non trovo l'errore di sintassi...

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    'Testo like = 'piacenza%''

    senza "="

    'Testo like 'piacenza%''
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    ok adesso funziona ma non trova niente...mentre invece io sono sicuro che esistono almeno cinque articoli con la parola piacenza.
    perchè?
    e se cambio parola mi da come errore:

    ADODB.Recordset error '800a0bcd'

    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

    /ricerca.asp, line 94

    siamo sicuri che io stia procedendo per la strada giusta?

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    while (not rs.eof or rs.bof)

    io cambierei in

    while not rs.eof

    rs.bof non serve se vai solo in avanti, poichè quando apri il recordset, se non estrae nulla EOF e BOF coincidono

    Oppure comunque il not va fuori della parentesi...

    while not (rs.eof or rs.bof)
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    fatto...solo che il codice è un pochino cambiato,giusto perchè dovevo fare un controllo.se non c'è nessun record dovevo scrivere un messaggio.
    la pagina comunque continua a non andare.
    il codice ora è così:
    codice:
    <table border="0" cellpadding="5" style="border-collapse: collapse" width="96%" id="table20">
    				<tr>
    					<td style="border-bottom: 1px dotted #CC0000">
    					<font size="4" color="#CC0000">Risultati della ricerca</font>
    					
    
    
    					<%
    					ricerca = Request.Form("ricerca")
    					sql = "select * from articoli WHERE Testo like '" & ricerca & "%' order by data desc"
    					'response.write (sql):response.end
    					rs.Open sql, conn, 1, 3
    					do while not rs.EOF
    					sq = sq + 1
    					loop
    					
    					if sq > 0 then		
    					
    					intConta = 1
                        i = 0
                        while not rs.eof
                        i = i + 1
                        if i MOD 2 = 0 then
                        colour = ("#EEEEEE")
                        else
                        colour = ("#FFFFFF")
                        end if
                        
                        if (intConta > 3) and (intConta <=10) then
    					
    					id = rs("ID")
    					data = rs("Data")
    					titolo = rs("Titolo")
    					%>
    					<table border="0" cellpadding="2" style="border-collapse: collapse" width="100%" id="table30">
    						<tr>
    							<td bgcolor="<%=colour%>" style="border-bottom: 1px solid #E4E4E4" width="69" valign="top" align="left">
    					           <font color="#999999">
    					           <%
    					           Response.Write ("(")
    					           Response.Write data
    					           Response.Write (")")
    					           %>
    					           </font>
    					        </td> 
    					        <td bgcolor="<%=colour%>" style="border-bottom: 1px solid #E4E4E4" valign="top" align="left">
    					        
    					           <a href="pag-articolo.asp?numero=<%=id%>">
    					           <font color="#CC0000">				
    					           <%
    					           Response.Write titolo
    					           %>
    					           </font>
    					           </a>
    					        
    					        </td>
    					    </tr>
    					</table>
    					<%						
    					end if
                        rs.movenext()
                        intConta = intConta + 1
                        wend
                        
                        else
                        Response.Write ("Nessun articolo trovato con la parola da Lei richiesta")
    					end if					
    					%>	
    				</tr>
    			</table>
    			</center>
            </div>
    non mi da nessun errore,solo la pagina sembra caricarsi ma poi non si carica mai,in effetti.
    se volete fare una prova andate su

    www.centropopolareeuropeo.com/index2.asp

    in alto a sinistra c'è il campo ricerca con il tasto vai.provate a inserire Piacenza e dateci un'occhiata.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    99
    La proposizione sql dovrebbe essere così:

    sql = "select * from articoli WHERE Testo like = '%" & ricerca & "%' order by data desc"

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    99
    Scusami avevo dimenticato = da eliminare dunque:

    sql = "select * from articoli WHERE Testo like '" & ricerca & "%' order by data desc"

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    99
    Dannata fretta correggo ancora

    sql = "select * from articoli WHERE Testo like '%" & ricerca & "%' order by data desc"

  9. #9
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    do while not rs.EOF
    sq = sq + 1
    loop

    loop infinito, in quanto rs.eof non viene mai verificata se rs è pieno, in pratica manca rs.movenext

    codice:
    do while not rs.EOF
      sq = sq + 1
      rs.movenext
    loop
    poi fai di nuovo

    while not rs.eof

    ma dal promo loop esce sempre in eof, quindi devi ricaricare il recordset
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  10. #10
    Innanzitutto vi ringrazio della disponibilità che mostrate,ma comunque (non so se sono io imbranato o che...tra l'altro è molto probabile) non prende niente...la pagina va,ma non trova nessun risultato...
    aggiorniamoci ancora sul codice:l'ultima versione è questa:

    codice:
    <div align="center">
              <center>
    			
    			<table border="0" cellpadding="5" style="border-collapse: collapse" width="96%" id="table20">
    				<tr>
    					<td style="border-bottom: 1px dotted #CC0000">
    					<font size="4" color="#CC0000">Risultati della ricerca</font>
    					
    
    
    					<%
    					ricerca = Request.Form("ricerca")
    					sql = "select * from articoli WHERE Testo like '%" & ricerca & "%' order by data desc"
    					'response.write (sql):response.end
    					rs.Open sql, conn, 1, 3
    					do while not rs.EOF
    					sq = sq + 1
    					rs.movenext
    					loop
    					
    					if sq > 0 then		
    					
    					intConta = 1
                        i = 0
                        while not rs.eof
                        i = i + 1
                        if i MOD 2 = 0 then
                        colour = ("#EEEEEE")
                        else
                        colour = ("#FFFFFF")
                        end if
                        
                        if (intConta > 3) and (intConta <=10) then
    					
    					id = rs("ID")
    					data = rs("Data")
    					titolo = rs("Titolo")
    					%>
    					<table border="0" cellpadding="2" style="border-collapse: collapse" width="100%" id="table30">
    						<tr>
    							<td bgcolor="<%=colour%>" style="border-bottom: 1px solid #E4E4E4" width="69" valign="top" align="left">
    					           <font color="#999999">
    					           <%
    					           Response.Write ("(")
    					           Response.Write data
    					           Response.Write (")")
    					           %>
    					           </font>
    					        </td> 
    					        <td bgcolor="<%=colour%>" style="border-bottom: 1px solid #E4E4E4" valign="top" align="left">
    					        
    					           <a href="pag-articolo.asp?numero=<%=id%>">
    					           <font color="#CC0000">				
    					           <%
    					           Response.Write titolo
    					           %>
    					           </font>
    					           </a>
    					        
    					        </td>
    					    </tr>
    					</table>
    					<%						
    					end if
                        rs.movenext()
                        intConta = intConta + 1
                        wend
                        
                        else
                        Response.Write ("Nessun articolo trovato con la parola da Lei richiesta")
    					end if					
    					%>	
    				</tr>
    			</table>
    			</center>
            </div>
    e la pagina è sempre

    www.centropopolareeuropeo.com/index2.asp

    grazie mille veramente

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.