Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    ricerca di valore approssimato in tabella

    Gentili colleghi scienziati
    piu' che il titolo criptico puo' essere chiaro un esempio:
    a) in un form ho un textbox nel quale inserisco un numero (es.: 1200)
    b) il form invia il valore suddetto ad un file php che apre un database e in esso una tabella nella quale devo ricercare il numero di cui sopra.
    c) se il numero non esiste devo trovare il piu' vicino (in eccesso) contenuto nella tabella

    Bene, detto questo confesso che ho sperato in una bella funzioncina già implementata nel linguaggio, ma non ho trovato nulla.
    Sono io che non sono capace o chiedo la luna ?
    Chi avesse capito il problema puo' gentilmente aiutare povero praticante meschino e reietto ...
    Infinitamente grazie

  2. #2
    Utente di HTML.it L'avatar di dalang
    Registrato dal
    May 2003
    Messaggi
    252
    Ciao, sono un po' di fretta, quindi ti do solo le linee guida... al massimo domani ti rispondo meglio.

    supponiamo che il campo della tabella mysql si chiami numero,

    calcoli la differenza tra i numeri nel database e quello che cerchi, e li ordini per "errore" crescente.

    esempio (non so se in mysql c'è la funzione ABS, ma credo di si...)

    SELECT numero, ABS(numero - $n) AS errore FROM tabella WHERE 1 ORDER by errore ASC

    risultato:
    codice:
    numero
     1345
     1301
     1201
     1099
    
    restituisce:
    numero    errore
     1201        1
     1301      101
     1099      101
     1345      145
    Spero sia chiaro...

    [EDIT]
    mi sono accorto che se non lo trova uguale deve considerare solo quelli in eccesso... basta che togli ABS.
    se vuoi solo il primo metti LIMIT 1 in fondo alla query.
    [/EDIT]

    Ciauz

  3. #3
    SELECT * FROM tabella
    WHERE numero >= '$tuo_num'
    order by numero
    limit 1


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.