Originariamente inviato da Rossella_75
29 - 3500
30 - 7000
quindi ad esempio quando il valore è
5000 lui mi segnala l'ID
29 mentre dovrebbe andare per eccesso al
l'id 30 è possibile?
E' quello che avevi chiesto tu, se invece vuoi un arrotondamento per eccesso devi cambiare le query in questo modo
Codice PHP:
$r = mysql_query("SELECT MIN((valore - $input)) FROM tabella WHERE (valore - $input) >= 0");
$mindiff = mysql_result($r, 0, 0);
$r = mysql_query("SELECT id, valore FROM tabella WHERE (valore - $input) = $mindiff");
$row = mysql_fetch_array($r);
Come ti ripeto l'ultima query può restituire anche più di un risultato nel caso in cui ci siano due record con lo stesso campo valore, se non è questo che vuoi dimmelo che va cambiata.
e poi se il numero è con la virgola ad esempio
527.575
non fà nulla...
Non è che non fa nulla, semplicemente se nella tabella hai solo valori interi, lui cerca (7000 - 527.575) = 4472,425 nel campo valore e non trova nessuna corrispondenza.
Tramite php puoi convertire il dato di input in intero con
Codice PHP:
$input = (int) $input; // se è 527.575 diventa 527
in questo modo troverai sempre corrispondenze.