2016-04-22 85 views
-3

我有一個選定的行,我想顯示按列中具有最高值的行排序的表中的所有48列。48列按最高編號列排序

實施例:有4列和所顯示的需要在顯示的列名稱和正在顯示如下面的行的值的表來組織這些列中的1列:

Ore  | Amount 
Column1 | 1207 
Column2 | 865 
Column3 | 346 
Column4 | 0 

這是我到目前爲止有:

function oreAmount(){ 
     $columns = "`column1`, `column2`, `column3`, `column4` ...(44 more columns)"; 
     $sql = mysqli_query($this->con, "SELECT " . $columns . " FROM operations WHERE active = '1'"); 
    while ($row = mysqli_fetch_array($sql)) { 
     $rows[] = $row; 
     foreach ($row as $key => $var) { 
      echo "<tr><td>$key</td><td>$var</td></tr>"; 
     } 
    } 
} 

我會發布的腳本進行排序,但我對如何做到這一點完全喪失。

上述腳本返回的所有列,如:

`column1`, `column2`, `column3`, `column4`, (...44 more columns) 

編輯:除去單引號中列出的礦石,倒是從0上每隔一行開始的奇數。

Ore  | Amount 
0  | 0 
Column1 | 0 
1  | 0 
Column2 | 0 
2  | 0 
Column3 | 0 
3  | 0 
Column4 | 0 
4  | 0 
+1

的單引號這裏''選擇'「。 $列。 「'''需要被刪除,你已經使語句看起來像* SELECT''col1','col2',...'FROM *應該引發語法錯誤 –

+0

你只想顯示1行正確?那行將由哪個列中的最高金額決定? – Webeng

+0

正確,現在刪除單引號會列出所有列,但不會顯示我想要顯示的第1行的列的值,因爲會有隻有1行的'active'被設置爲1.但是它顯示了一張表,它給出了我剛剛發佈的編輯信息 – spencdev

回答

-2

改變這一行:

$sql = mysqli_query($this->con, "SELECT '" . $columns . "' FROM operations WHERE active = '1'"); 

包括SQL代碼:

ORDER BY $columnWithHighest DESC 

$columnWithHighest將是你與higehest值中提到的列。從那裏你只需取1行,那就是你想要的行。

讓我知道是否有幫助!

+0

不完全,雖然刪除單引號確實有助於列出每一列。我想要冷杉t列顯示爲具有最高值的行。 – spencdev

+0

@如此......現在,您正在給我提供新信息,您希望第一列顯示爲具有最高值的行。請完全解釋你想要的問題,否則我的答案會不斷被修改,因爲我無法確定你想要什麼。 – Webeng

+0

這正是我所問的。此外,刪除單引號列出了列,但它添加了從每隔一行0開始的奇數。我編輯我的帖子以顯示錶格顯示的內容。 – spencdev

0

從排

SELECT id,GREATEST(m2, m1, m3, m4) 
FROM tblname 

越來越高數量,如果你想按行排序使用

SELECT * 
FROM tblname order by GREATEST(m2, m1, m3, m4) 

這裏M2,M1,M3,M4是列名使用GREATEST關鍵字