2017-09-08 41 views
1

我正在使用PHP來執行此操作。 我在我的DB上有一個表,其中一個值可以有兩個半相似的記錄,我想在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做的是隻顯示與不同顏色的......我不能sintetize這些行具有相同值合併的方式。 ..: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  | 
---------------|--------------------|----------------|---------------- 

這是我的表的例子......我想合併的單元格中重複什麼位置,具有相同的值(它是一種細胞和位置號碼,在這個例子 - 但在我的真實腳本中,我有更多的列),並顯示這些值一次。而具有不同值的列,但是來自相同的合併位置,值顯示在同一行中,但一個在另一個下面。

而我有另一個問題。我有一個帶有頻率的小數列,但我無法確定點之後的數字大小,所以我在點之後放大了數據大小。

問題?

腳本打印的數字是這樣的:

0.00000828700000000000 
0.00216100000000000000 

而且我想這樣的:

0.000008287 
0.002161 

但是,當我使用floatval(),該腳本返回:

8.287E-6 
0.002161 

我不希望科學記數法的回報。

感謝

回答

0

而不是floatval()可以使用rtrimsprintf

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

前行的輸出是:0.000008287

+0

哦,謝謝! 我只用這個: 'rtrim(「0.00000828700000000000」,「0」);' 並且工作... – Rafael