佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1432|回复: 16

php 找最靠近的NUMBER

  [复制链接]
发表于 23-10-2010 08:16 AM | 显示全部楼层 |阅读模式
小弟有一个难题,折腾了几天,请各位可以帮帮我吗。

我有个 database 是这样的
100cm = RM100
200cm = RM200
300cm = RM300

但 输入120 它会找最靠近的NUMBER。
eg:
输入100 - 199 属于 RM100,
输入200 - 299 属于 RM200,
输入》300  属于 RM300,

我该怎样写这个呢? 请帮帮帮忙???折腾了几天,小弟不才。

谢谢
回复

使用道具 举报


ADVERTISEMENT

发表于 23-10-2010 08:55 AM | 显示全部楼层
if(( $varcm >= 100) && ($varcm < 200))
{
  echo "RM100";
}
elseif($varcm < 300)
{
  echo "RM200";
}
elseif( $varcm >= 300)
{
  echo "RM300";
}
回复

使用道具 举报

发表于 23-10-2010 09:51 AM | 显示全部楼层
$a=(int)($a/100)*100;
回复

使用道具 举报

 楼主| 发表于 23-10-2010 01:07 PM | 显示全部楼层
本帖最后由 ipaxnet 于 23-10-2010 01:08 PM 编辑

谢谢你们的帮助。
如果我的 有很多呢?
100cm = RM100
200cm = RM200
300cm = RM300
400cm = RM450
500cm = RM600
600cm = RM1000
输入380cm 出来的result是RM300
输入450cm 出来的result是RM450

该怎样呢。
对不起,太多问题了。
回复

使用道具 举报

发表于 23-10-2010 02:18 PM | 显示全部楼层
谢谢你们的帮助。
如果我的 有很多呢?
100cm = RM100
200cm = RM200
300cm = RM300
400cm = RM450
5 ...
ipaxnet 发表于 23-10-2010 01:07 PM


用DB来control咯。。。二楼已近插不多都给了你
回复

使用道具 举报

 楼主| 发表于 23-10-2010 10:31 PM | 显示全部楼层
我明白二楼的帮忙。但如果我有100个record 在 database呢, 我该怎样找那最靠近的NUMBER, 然后show出result呢。
eg:
id    width    price
1     100cm  RM200
2     250cm  RM530
3     360cm  RM760
4     420cm   RM900
continue 100 record

单我的 input 360cm, result RM760...
370cm, result RM760...
380cm, result RM760.......
400cm, result RM760....
410cm, result RM760.... 单 input 420cm result 出来是RM900

我 try很多方发还是不能。伤脑经。
回复

使用道具 举报

Follow Us
发表于 23-10-2010 10:45 PM | 显示全部楼层
樓主之後問的問題好像已經乘離你原先要的.

你之後要的除非是有邏輯可尋不然就必需一對一的對比.
回复

使用道具 举报

 楼主| 发表于 23-10-2010 10:53 PM | 显示全部楼层
对不起,可能我开是表答错了。

在烦着 。。。。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 23-10-2010 11:02 PM | 显示全部楼层
这个是customer的sample

http://www.blindsuk.net
我怎样可Get Quote??
回复

使用道具 举报

发表于 24-10-2010 12:34 AM | 显示全部楼层
你應該問你的顧客他的商品是怎樣計算的
回复

使用道具 举报

发表于 24-10-2010 01:44 PM | 显示全部楼层
如果是要找最接近的話應該讀出 N筆你質料庫的資料存入二維陣列 ,然後將(二維陣列的比較值-你的輸入值) 再取絕對值,然後對N筆結果做排序,取第一筆就是最接近的值了.
應該是這樣沒有錯吧
回复

使用道具 举报

发表于 24-10-2010 02:14 PM | 显示全部楼层
我明白二楼的帮忙。但如果我有100个record 在 database呢, 我该怎样找那最靠近的NUMBER, 然后show出resul ...
ipaxnet 发表于 23-10-2010 10:31 PM



你可以这样做的。。。

0-99 = RM250
100-249 = RM300
250-359 = RM350
360-9999 = RM500

就这样...然后用SQL来query出来就ok了
回复

使用道具 举报

 楼主| 发表于 24-10-2010 05:16 PM | 显示全部楼层
如果是要找最接近的話應該讀出 N筆你質料庫的資料存入二維陣列 ,然後將(二維陣列的比較值-你的輸入值) 再取 ...
desmond_0321 发表于 24-10-2010 01:44 PM


desmond大哥,什么是二維陣列的比較值呢? 您的方法不错,我想下。但不知什么是二維陣列的比較值? 可以解释吗?

谢谢个位的帮助。
回复

使用道具 举报

发表于 24-10-2010 10:17 PM | 显示全部楼层
desmond大哥,什么是二維陣列的比較值呢? 您的方法不错,我想下。但不知什么是二維陣列的比較值? 可以 ...
ipaxnet 发表于 24-10-2010 05:16 PM


就是把你资料库的资料[size=15.8333px]query出来存入阵列,像下面表格那样,100cm 和 170cm 就是你的比较值,[size=15.8333px]然后用回圈把它们跟你的输入值相减之后存回阵列,再对他们做排序取最小的,然后就可以得到最接近的价钱了,这样可以明白吗?


              价钱                                       比较值
RM100 100cm
RM200 170cm
回复

使用道具 举报

发表于 25-10-2010 12:26 PM | 显示全部楼层
SELECT * FROM TABLENAME WHERE width >= yourUserInput limit 1;
回复

使用道具 举报

发表于 27-10-2010 09:02 AM | 显示全部楼层
select price from table where width >= width order by width desc limit 0,1;
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 21-12-2010 10:29 AM | 显示全部楼层
Sorry, 忘记谢谢各路英雄。小弟的问题解决了。 谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 16-11-2025 07:39 PM , Processed in 0.126553 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表