Errore nella visualizzazione dei risultati di una search page

  • Creatore Discussione Creatore Discussione azure81
  • Data di inizio Data di inizio

azure81

Utente Attivo
19 Set 2008
37
0
0
Allora ho creato una search page in asp vbscript con la relativa pagina action, il tutto seguendo un manuale di dreamweaver.
Quando però vado a vedere tutto in locale, la pagina con il form funziona bene ma quando invio il form per andare alla pagina di risultati mi da errore. Di seguito il testo della pagina di errore:


Informazioni tecniche (per il personale del supporto tecnico)

Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver Manager ODBC] Funzione SQLSetConnectAttr del driver non riuscita.
/vendimpresa/pub/risultati_cerca_lav.asp, line 15


Tipo di browser:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Pagina:
POST 73 bytes to /vendimpresa/pub/risultati_cerca_lav.asp

POST Data:
parola_chiave=parola&settore=Amministrazione&contratti=Tutti&submit=Invia



Alla linea 15 della pagina risultati_cerca_lav.asp c'è questo codice:

Annunci.ActiveConnection = MM_Vendimpresa_STRING


Dove sta l'errore? :confused: Mi potete aiutare? :crying:
 
Allora questo problema l'ho risolto modificando il codice del file nella cartella connection.
Ora il problema è che non so dire alla pagina dei risultati che mi deve mostrare i risultati facendo controlli incrociati nel database in quanto l'utente può dare riferimenti per più campi o dire di cercare in un solo campo o dire di cercare la frase intera e non solo le parole prese separatamente.
Non sono esperta di asp, ho cercato in varie guide e non ho trovato niente di tutto ciò, o per lo meno niente di comprensibile per me.
 
Esatto una cosa simile.
Il mio form comprende:
un campo di testo: codice completato
due menu a tendina: codice completato
due checkox, uno dice di cercare solo nel campo titolo e una dice di cercare la frase intera inserita nel campo di testo.
Non so settare i due checkbox. Non so proprio come si fa.
Il codice che ho inserito per tutto il resto è questo (riguarda solo il passaggio di stringhe e la query)

<%
Dim strChiave
strChiave = ""
If (Request.Form("Titolo") <> "") Then
strChiave = Request.Form("Titolo")
End If

Dim strSettore
strSettore=""
If (Request.Form("settore") <> "") Then
strSettore = Request.Form("settore")
END If

Dim strContratti
strContratti=""
If (Request.Form("contratti")<> "") Then
strContratti = Request.Form("contratti")
End If

%>
<%
Dim Annunci
Dim Annunci_numRows

Set Annunci = Server.CreateObject("ADODB.Recordset")
Annunci.ActiveConnection = MM_Vendimpresa_STRING
Annunci.Source = "SELECT * FROM Inserimento_annunci WHERE Categoria LIKE '%"&strSettore& "%' AND Contratto LIKE '%"&strContratti&"%' AND (Titolo LIKE '%"& strChiave& "%' OR Descrizione LIKE '%"& strChiave& "%')"
Annunci.CursorType = 0
Annunci.CursorLocation = 2
Annunci.LockType = 1
Annunci.Open()

Annunci_numRows = 0
%>




<%
Dim strChiave
strChiave = ""
If (Request.Form("Titolo") <> "") Then
strChiave = Request.Form("Titolo")
End If

Dim strSettore
strSettore=""
If (Request.Form("settore") <> "") Then
strSettore = Request.Form("settore")
END If

Dim strContratti
strContratti=""
If (Request.Form("contratti")<> "") Then
strContratti = Request.Form("contratti")
End If

Dim strSoloTitolo
strSoloTitolo=""
If (Request.Form("solo_titolo")= 1) Then
strSoloTitolo = 1
End If

%>
<%
Dim Annunci
Dim Annunci_numRows

Set Annunci = Server.CreateObject("ADODB.Recordset")
Annunci.ActiveConnection = MM_Vendimpresa_STRING
Annunci.Source = "SELECT * FROM Inserimento_annunci WHERE Categoria LIKE '%"&strSettore& "%' AND Contratto LIKE '%"&strContratti&"%' AND if (strSoloTitolo=1) then (Titolo LIKE '%"& strChiave& "%') else (Titolo LIKE '%"& strChiave& "%' OR Descrizione LIKE '%"& strChiave& "%')"
Annunci.CursorType = 0
Annunci.CursorLocation = 2
Annunci.LockType = 1
Annunci.Open()

Annunci_numRows = 0
%>


Il primo codice è quello senza considerare i checkbox; nel secondo codice, la parte in blu, è quella che ho aggiunto per fargli considerare il primo checkbox, quello della ricerca solo nel campo titolo.
Credo però di averlo scritto male infatti non funziona e mi da il seguente errore:

Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'Categoria LIKE '%Amministrazione%' AND Contratto LIKE '%Full-time%' AND if (strSoloTitolo=1) then (Titolo LIKE '%parola%') else (Titolo LIKE '%parola%' OR Descrizione LIKE '%parola%')'.
/vendimpresa/pub/risultati_cerca_lav.asp, line 38


Cosa ho sbagliato? :confused:
 

Discussioni simili