Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684

    Recupero valore prestabilito

    Voglio recuperare un valore del tipo, il comando e' fuori dalla connessione al database e dal ciclo per la visualizzazione dei record; l'utente puo' selezionare gli annunci anche in base solo alla regione di interesse, il valore da passare e' scelto da meda (lombardia, piemonte, ecc) es:

    regione.asp?regionescelta=lombardia

    dim regionescelta, valore, conn, rs '...e altre variabili

    ' recupero il valore
    valore = request.QueryString("regionescelta")

    'Recupero le informazioni dell'annuncio dal database
    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("database.mdb")
    Conn.Open strConn
    sql = "SELECT * FROM annunci ORDER by ID WHERE regione = "& valore
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3

    ' se non uso il WHERE attivo l'rs.filter
    ' rs.filter=" regione = " & valore

    do while not(rs.eof)
    %>
    ...
    <span class="dati"><%=rs("paese")%></span>
    <span class="dati"><%=rs("regione")%></span>
    ...

    <%
    rs.movenext
    loop
    rs.Close
    set rs=Nothing
    conn.Close
    set conn=Nothing
    %>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Ho problemi con la sintassi WHERE regione =...
    MI restituisce un errore alla linea 200:
    <%
    ...
    rs.Open sql, conn ,3,3
    ...
    %>

    Ovviamente se sostituisco, eliminando l'assegnazione della variabile "valore":

    <%
    ...
    ...where regione= 'lombardia'"
    ...
    %>

    Dove sbaglio? Recupero in modo errato il valore utilizzando "valore=request.querystring("regionescelta")

  3. #3
    Ti correggo al volo questa:

    codice:
    sql = "SELECT * FROM annunci ORDER by ID WHERE regione = "& valore
    così:

    codice:
    sql = "SELECT * FROM annunci WHERE regione = '" & valore & "' ORDER by ID "
    L'ORDER BY va alla fine della sintassi della QUERY e la variabile "valore" suppongo sia stringa e non numerico e quindi va tra apici.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    ma la variabile regionescelta (tipostringa) la devo inizializzare nella pagina regione.asp

    tipeto che il codice del link per passare il valore alla pagina asp che deve processare e visualizzare i record e' questo:
    codice:
    LOMBARDIA

  5. #5
    Hai provato?
    E' giusto il link, ma hai provato se la query da me suggerita ti funziona?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    OK. Ok. VA bene... ma inizializzare o no la variabile stringa "regionescelta" nella pagina regione.asp dove passare i dati non produce alcuna differenza.... come mai?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Ultima cosa.
    Ho inserito nella pagina regione.asp un delle linee di comando al fine di impaginare tot record per pagina.

    Il problema:
    Se clicco sul link avanti o dietro mi da errore, ecco il link avanti:

    ?page=<%= iPageCurrent + 1 %>&order=<%= Server.URLEncode(strOrderBy) %>" class="zone">avanti&gt;&gt;

    Le linee di codice, che non sono queste, per creare l'impaginazione le ho prese da uno script gia pronto trovato su queste pagine... quindi non conosco bene il funzionamento e ti avviso che sono agli inizi della prg. asp.

    Grazie

  8. #8

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Risolto il problema dei link per andare avanti e tornare all'inizio pagina... se ne presenta un altro, ho inserito (scopiazzato) del codice impaginare la pagina. Passo un valore (regione=lombardia) e accedo al database per recuperare tutti i record con campo regione=lombardia. Ma sei il numero di record che hanno quel valore è inferiore, numericamente, al valore assegnato alla variabile "iPageSize" mi appare il seguente errore:

    ADODB.Field (0x80020009)
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
    /dominio/regione_notab.asp


    questo e' il codice:


    <%
    Dim valore

    Dim conn 'La solita variabile di connessione

    Dim iPageSize 'Numero di record da visualizzare per ogni pagina

    Dim iPageCount 'Numero di pagine totali che otteniamo dalla query

    Dim iPageCurrent 'Pagina corrente

    Dim strOrderBy 'Parametro in base a cui definire l'ordinamento

    Dim strSQL 'Comando da eseguire per effettuare la ricerca

    Dim RS 'Il nostro solito recordSet

    Dim iRecordsShown 'Variabile usata per definire i record mostrati
    iPageSize = 5
    If Request.QueryString("page") = "" Then

    iPageCurrent = 1

    Else

    iPageCurrent = CInt(Request.QueryString("page"))

    End If
    If Request.QueryString("order") = "" Then

    strOrderBy = "id"

    Else

    strOrderBy = Request.QueryString("order")

    End If
    valore = request.QueryString("regionescelta")

    Set Conn=Server.CreateObject("ADODB.Connection")
    strConn="driver={Microsoft Access Driver (*.mdb)}; "
    strConn=strConn & " DBQ=" & Server.MapPath("database.mdb")
    Conn.Open strConn
    sql = "SELECT * FROM annunci WHERE regione = '" & valore & " ' ORDER by id DESC"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3

    ' rs.filter = " regione = " & valoreRS.PageSize = iPageSize
    ' rs filter = " regione = 'Lombardia' "
    RS.CacheSize = iPageSize

    iPageCount = RS.PageCount
    If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
    If iPageCurrent < 1 Then iPageCurrent = 1
    If iPageCount = 0 Then

    Response.Write("Nessun record visualizzato!")
    Else

    RS.AbsolutePage = iPageCurrent
    iRecordsShown = 0

    Do While iRecordsShown < iPageSize And Not RS.EOF
    %>

    dati per recuperare i record

    <%
    iRecordsShown = iRecordsShown + 1
    RS.MoveNext

    Loop
    End If

    If iPageCurrent <> 1 Then
    %>

    il resto del codice serve per andare avanti e indientro nelle pagine.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    VVoVe: Sto impazzendo, ho risolto il problema di visualizzare tutti i record (infatti prima non riuscivo, quando passavo un valore, a visualizzare i record presenti nel database inferiori come numero al valore deciso nella variabile dove impostavo il numero max di record per pagina).

    ORA!!!
    Non riesco a muovermi tra pagine!!!
    Posto il codice... provo a riscrivere la pagina e chissa' se qualcuno puo' darci un'occhiata...

    <%
    If iPageCurrent <> 1 Then
    %>

    <a href="regione.asp?regionescelta=<%=rs("regione")%> &page=<%= iPageCurrent - 1 %>">
    &lt;&lt; indietro</a>
    <%
    End If
    %>
    [/b]</font> </div>
    </td>
    <td>
    <div align="right"><font face="Arial, Helvetica, sans-serif" size="2">
    <%
    If iPageCurrent < iPageCount Then
    %>

    <a href="regione.asp?regionescelta=<%=rs("regione")%> &page=<%= iPageCurrent + 1 %>">avanti
    &gt;&gt;</a>
    </font></div>
    <%
    End If

    RS.Close
    Set RS = Nothing
    Conn.Close
    %>

    Questa parte di codice e' inserita come parte finale dello script.
    prima dei tag html</body></html>

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.