组行并不显示数字作为科学记数法

时间:2017-09-08 13:08:36

标签: php html mysql

我正在使用PHP来执行此操作。 我的数据库上有一个表,其中一个值可以有两个半相似的记录,我想在HTML的同一行显示它们。不,我无法在MySQL select中进行分组,因为此表中只有2或3(最多4)列具有SAME值,而其他列具有不同的值(频率,计数)。 为了更容易理解,我有一个表,其中列位置可以允许两个相同位置的记录(或更多)。有三列(示例),称为A,B和C,对于相同的位置具有相同的值(通常)和四列(示例),D,E,F和G具有不同的值。

我想要什么?

在屏幕上打印数据时,我想对具有相同位置的值进行分组(如果同一位置的A,B,C或其他列具有相同的值,则将其分组并仅显示一次),但是在同一行中显示两个不同的值,一个在另一个上面。

我创造了一段时间,其中:

Select all DB data
While with all data to list (fetch_array);
    Select the FK data;
    Select the repeated data from table with a where condition in position;
    IF the select of repeated data result have more than two rows:
        X
    Else
        Display the individual rows.
End of while.

我在X中可以做的只是具有不同颜色的显示......我无法解释将这些行合并为相同值的方式......:S

要更好地理解......

我的桌子实际上是:

---------------|--------------------|----------------|----------------
  Position     |   Variable         | Frequence      | Data
---------------|--------------------|----------------|----------------
  102230       | Information 1      | 0.0003         |   A
---------------|--------------------|----------------|----------------  
  102230       | Information 2      | 0.00743        |   A
---------------|--------------------|----------------|----------------
  103330       | Information x      | 0.002558       |   A
---------------|--------------------|----------------|----------------
 1033340       | Information y      | 0.00255        |   A
---------------|--------------------|----------------|----------------  
  102220       | Information 4      | 0.0099553      |   A
---------------|--------------------|----------------|----------------  
  102220       | Information 5      | 0.00722243     |   A
---------------|--------------------|----------------|----------------

我想要的是什么:

---------------|--------------------|----------------|----------------
  Position     |   Variable         | Frequence      | Data
---------------|--------------------|----------------|----------------
  102230       | Information 1      | 0.0003         |   A
               | Information 2      | 0.00743        |   
---------------|--------------------|----------------|----------------
  103330       | Information x      | 0.002558       |   A
---------------|--------------------|----------------|----------------
 1033340       | Information y      | 0.00255        |   A
---------------|--------------------|----------------|----------------  
  102220       | Information 4      | 0.0099553      |   A
               | Information 5      | 0.00722243     |   
---------------|--------------------|----------------|----------------

这是我的表的一个例子......我想合并重复位置的单元格,具有相同的值(在这个例子中它是A单元格和位置编号 - 但是在我的真实剧本中,我有更多列),并显示这些值一次。并且具有不同值但是来自相同合并位置的列的值显示在同一行中,但是一个在另一行下面。

我有另一个问题。我有一个带有频率的十进制列,但我无法确定点后面的数字大小,所以我在点后面的数据中加了一个大的。

问题?

脚本打印的数字如下:

0.00000828700000000000
0.00216100000000000000

我想要这个:

0.000008287
0.002161

但是当我使用floatval()时,脚本会返回:

8.287E-6
0.002161

我不希望科学记谱法的回归。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用rtrimsprintf代替 floatval()

$number = rtrim(sprintf('%.20f', "0.00000828700000000000"), "0");

上一行的输出为:0.000008287