如何显示一个最接近或等于系统与数据库计算结果的值?

Posted

技术标签:

【中文标题】如何显示一个最接近或等于系统与数据库计算结果的值?【英文标题】:how to show up a value that is closest to or equal to the results of calculating the system with the database? 【发布时间】:2019-02-24 05:59:31 【问题描述】:

我使用框架 CI

我在数据库中有两个表。第一个表是“A”,第二个表是“B”。在“A”表中有一个“DIAMETER”列,其中包含用户从系统计算中获得的数字。

在“B”表中有一个“标准”列,其中包含管理员输入的数字。

那么如何在用户计算出的“DIAMETER”数接近或等于“STANDARD”时显示“STANDAR”数?

In the database

表 A,列 直径 2.5、3.8、 5.6

表 B,列 标准 3、 3.5, 4、 5、 6、

如果计算直径3.8的结果是要提升的结果是4,如果结果是直径5.6那么结果是提升6。 我期望的结果接近标准数或与标准数相同的***数字

我的模型

public function get_standar()
$this->db->order_by('standar', 'ASC');
$this->db->limit('0');
return $this->db->get('B')->result();

我的观点

<div class="form-group has-success">
<label>Diameter</label>
<div class="form-group input-group">
    <input class="form-control" name="diameter" type="text" value="<?php echo number_format($getdata->diameter,2);?>" readonly="">
    <span class="input-group-addon">mm</span>
</div>
<label>Standar</label>
<select class="form-control" name="standar" id="standar">
<?php foreach ($standar as $stand) ?>
    <option <?php echo $standar_selected == $stand->id_standar ? 'selected="selected"' : '' ?> value="<?php echo $stand->id_standar ?>">
        <?php if ($getdata->diameter >= $stand->standar)  echo $stand->standar ; ?>
    </option>
<?php ?>
</select>

enter image description here enter image description here

【问题讨论】:

【参考方案1】:

以下查询返回大于或等于您计算的直径的最小标准直径:

$diameter = 3.8;

$sql = "SELECT MIN(column_standard), other columns you need
FROM table B 
WHERE column_standard >= $diameter";

$this->db->query($sql);

上面的查询返回 4 作为结果。

【讨论】:

谢谢你的回答,在我使用框架codeigniter之前,这个可以用吗? 当然,如果您在 mysql 客户端上运行此查询,它将正常工作。您只需要将 $diameter 替换为 mysql 客户端上的值。 你得到了什么错误之王?你能提供一些与你查询相关的代码吗?

以上是关于如何显示一个最接近或等于系统与数据库计算结果的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何消除与字谜结果相等或相反的字符串?

如何从mysql中的数据库中获取最接近的值

JAVA寻找任意元素之和最接近指定数值的程序

java math.floor是啥意思

异或问题

生成具有最接近请求的结果值的等式,具有速度问题