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

Discussione: Query strana...

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    174

    Query strana...

    Ciao a tutti,

    Qualcuno potrebbe aiutarmi a capire dove sta il mistero? sto impazzendo!!!
    Mi spiego:

    Ho i seguenti campi nella tabella "Dati2":
    concorrente,code,description,code_oem,grm_sea,grm_ con,xnote,price.

    Lo scopo è quello di estrarre il prezzo più basso di un articolo tra tutti i listini della concorrenza.

    Perchè quando faccio la ricerca di un codice dal campo input ed eseguo la query, l'unico dato sballato è quello del campo "concorrente??? o id.

    In effetti mi tiro fuori il prezzo più basso tra la concorrenza per un determinato articolo.
    Funziona benissimo...ma l'ID o campo "concorrente" è sballato...non appartiene al resto dei campi...è come se fosse scollegato dal rs...come se andasse per conto suo.

    Esempio abbreviato :
    Concorrente - PIPPO
    descrizione: TAVOLO LUNGO
    prezzo mio: 100 EURO
    prezzo concorrenza: 50 EURO

    Tutti i campi sono esatti, tranne il concorrente(PIPPO)...perchè il concorrente che risulta essere il più basso come prezzo..non è PIPPO ma bensì TOPOLINO.

    Vi posto il codice..magari è meglio: (tolgo il codice html per semplificare)

    [CODE]
    <%
    Session.LCID = 1040
    %>


    <%

    Dim Cerca

    Cerca = Replace(Request.Form("search"), "'", "")

    if Cerca = "" then

    Response.write ""
    Response.end

    end if

    Dim DbPath, Conn

    DbPath="/db/db.mdb"
    Set Conn = Server.CreateObject("ADODB.Connection")

    Conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DbPath)


    Dim strSQL,Rs


    strSQL = "Select * from Dati2 where code='" & Cerca & "' order by code asc"
    'strSQL = "Select * from Dati2 where concorrente like '%" & Cerca & "%' or code like '%" & Cerca & "%' or description like '%" & Cerca & "%' order by code asc"
    'strSQL = "Select * from Dati2 where code like '%" & Cerca & "%' or ID like '%" & Cerca & "%' or description like '%" & Cerca & "%' order by code asc"



    Set Rs = Server.CreateObject("ADODB.Recordset")
    Rs.Open strSQL, Conn, 3, 3

    if Rs.EOF then

    Response.write "Nessun risultato trovato!"
    else

    Do while NOT Rs.EOF

    %>

    <%=Server.HTMLEncode(rs("concorrente"))%>
    <%=Server.HTMLEncode(rs("code"))%>
    <%Response.write "" & Rs ("description") & "" & ""%>
    <%Response.write "" & Rs ("code_oem") & "" & ""%>
    <%Response.write "" & Rs ("grammi_sea") & "" & ""%>
    <%Response.write "" & Rs ("grammi_con") & "" & ""%>
    <%Response.write "" & Rs ("xnote") & "" & ""%>
    <%Response.write "" & Rs ("price") & "" & ""%>
    <%set Rs=conn.execute ("Select MIN(prezzo_concorrenza + prezzo_promo)as minimo from Dati2 WHERE code='" & Cerca & "' ")%> <%response.write ""&Rs("minimo")%>
    <%
    Rs.MoveNext

    Loop

    End If

    Rs.close

    Set Rs = Nothing

    Conn.close

    Set Conn = Nothing
    %>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    1) Il recordset dentro al loop non devi chiamarsi Rs visto che sei già dentro ad un recordset con quel nome. Cambiagli nome quindi.
    2) La prima query estrae tutto, la seconda dentro al loop recupera il valore più basso ma non è detto che sia associato al valore di concorrente, anzi non c'entra proprio niente! E' il più basso e basta.

    Roby

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    EDIT
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    174
    Ciao Roby, grazie...ah ecco...porca miseria

    e cosa mi proporresti?

    un esempio???

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Quando recuperi il minimo devi recuperare anche il concorrente cui si riferisce.

    Roby

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    174
    ho provato cosi...ma non cambia la situazione.

    Set Rs = Server.CreateObject("ADODB.Recordset")
    Set Rs2 = Server.CreateObject("ADODB.Recordset")
    Rs.Open strSQL, Conn, 3, 3
    Rs2.Open strSQL, Conn, 3, 3


    <%=Server.HTMLEncode(rs2("concorrente"))%>
    <%=Server.HTMLEncode(rs2("code"))%>
    <%Response.write "" & Rs2 ("description") & "" & ""%>
    <%Response.write "" & Rs2 ("code_oem") & "" & ""%>
    <%Response.write "" & Rs2 ("grammi_sea") & "" & ""%>
    <%Response.write "" & Rs2 ("grammi_con") & "" & ""%>
    <%Response.write "" & Rs2 ("xnote") & "" & ""%>
    <%Response.write "" & Rs2 ("price") & "" & ""%>
    <%set Rs2=conn.execute ("Select MIN(prezzo_concorrenza + prezzo_promo)as minimo from Dati2 WHERE code='" & Cerca & "' ")%> <%response.write ""&Rs2("minimo")%>
    <%
    Rs2.MoveNext

    Loop

    End If

    Rs.close

    Set Rs = Nothing

    Conn.close

    Set Conn = Nothing
    %>
    Seg

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    174
    ah ho capito...non avevo letto...quindi devo recuperare il concorrente insieme al minimo?

    ci provo.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    174
    però il resto dei campi sono tutti associati...

    codice,codice_oem,descrizione,grammi,note,mioprezz o,prezzo_concorrenza

    solo il campo concorrente appunto è slegato.

    è una logica alquanto strana cmq.

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma sono associati che vuol dire...???
    La prima query estrae tutto ciò che è riferito alla ricerca effettuata.
    La seconda estrae il valore minimo (sempre relativo alla ricerca) ma non si sa a chi appartiene...

    Se la prima query estrae un solo record il risultato sarà giusto ma altrimenti non è detto.

    Roby

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    174
    La cosa strana Roby è che ho provato con tanti altri codici e il campo concorrente o id...è esatto...mah...invece con alcuni codici...è sballato.

    si ho capito quello che hai detto...pero' non mi spiegavo questa cosa.

    Per logica se un dato è errato...è errato per tutti i record. o no??? tu mi insegni.

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.