Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13
  1. #11
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    33
    Intanto si parte dal fatto che hai 3 campi: uno per il prezzo e uno con la data e uno con l'ora.
    Campo importo : Prezzo offerto (decimale)
    Campo data: giorno dell'offerta int (nel formato 20091012)
    Campo ora: int (nel formto 1152010)

    (piccola nota: il campo data lo puoi trattare come ti pare ma tieni conto che in asp e con server in inglese o italiano i risulati possono essere diversi visto che per gli americani oggi non e' il 12-10-2009 ma il 10-12-2009 e per ovviare a questo problema crei un unico numero che mette anno mese e giorno in fila e non sbagli mai)
    Per l'ora ho adottato una tecnica simile solo con l'aggiunta di un 1 davanti per evitare altri tipi di problemi ma poi fai tu)

    Quindi quando vuoi sapere chi ha fatto l'offerta piu' bassa imposti la query SQL in questo modo

    SELECT * FROM offerte WHERE idOfferta=[n] ORDER BY importo ASC, data DESC, ora DESC

    Il primo record e' quello che cerchi.
    Il meccanismo si basa sul fatto che la data e l'ora sono dei normali numeri ordinabili, come anche e' il prezzo offerto.

    Per fare meglio: SELECT TOP 1 [lista campi] WHERE....
    (ti permette di avere un solo record che e' quello che ti serve.)

    ciao

  2. #12
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    questa query non è corretta in quanto non estrae il dato voluto:
    se due utenti hanno offerto 1 euro e un utente ha offerto 2 euro
    dovrebbe venire fuori quello che ha offerto 2 euro, anche se
    non è l'offerta più bassa in assoluto e se fatta dopo le altre due,
    in quanto è una offerta unica, ovvero scelta da un utente solo,
    rispetto all'altra che è stata scelta da due utenti.
    luca
    www.intheweb.it - Internet solutions

  3. #13
    Ciao...forse nn cè bisogno di un luminare in sql.
    Il tuo prob di fondo è quello di assegnare dinamicamente valore univoco ad un offerta(che nel tuo caso sarà quella più bassa) di certo non puoi pretendere di farlo fare a db senza dargli un "valore univoco da comparare" e visto che a priopri non puoi conescere tale valore....semplicemente non lo puoi fare .
    E' lo stessimo discorso dell'username in registrazione...solo che non pui impedire di fare un offerta esistente,quindi...credo che il consiglio di barney sia il + logico..anche se ti bastano due passaggi..
    Aggiundi a db un campo a piacere da prendere in cosiderazione per offerte univoche...
    Dopo l'inserimento basta che controlli se quell'offerta già esisteste...se "si" fai aggiornamento multiplo in righe per offerte uguali nel campo che hai aggiunto con un valore a piacere es: 1
    Risultato: le righe che contegono(nel campo suddetto) valore nullo...saranno offerte univoche...
    Adesso nn cè bisogno dirti come fare semplice query.
    Fai tutto in due pagine...l'aggiornamento non implica assolutamnte sensibili sovraccarichi perchè deve solo aggiornare in determinate righe di una sola colonna, campi con un unico valore.
    Ciao.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.