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:
Spero sia chiaro...codice:numero 1345 1301 1201 1099 restituisce: numero errore 1201 1 1301 101 1099 101 1345 145
[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

Rispondi quotando