2014-07-22 24 views
5

Tôi có một bảng như sau:Làm thế nào để Chọn Giá trị nhỏ nhất Từ Nhiều Cột với PHP

6xx  8xx  9xx  11xx  12xx 
    1 0.01 0.002 0.004 0.001  0.025 
    2 0.025 0.125 0.002 0.01  0.011 

Tôi muốn tìm giá trị nhỏ nhất từ ​​cột làm cho cột đó là màu xanh lá cây.

Ví dụ trong 1 giá trị nhỏ nhất là 0,001 vì vậy tôi muốn nó có màu xanh lá cây, cho 0,002 thứ hai là giá trị nhỏ nhất tôi muốn nó là màu xanh lá cây.

có thể bất kỳ một hướng dẫn cho tôi làm thế nào để làm cho điều này, nhờ

dưới đây là đoạn code làm thế nào tôi chọn nó từ cơ sở dữ liệu và hiển thị int trong một bảng

<?php 

$dbHost = 'localhost'; // usually localhost 
$dbUsername = 'xxxx'; 
$dbPassword = 'xxxx'; 
$dbDatabase = 'xxxx'; 
$db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Unable to connect to Database Server."); 
mysql_select_db ($dbDatabase, $db) or die ("Could not select database."); 



$ColumnNames = mysql_query("SELECT column_name 
           FROM information_schema.COLUMNS 
          WHERE table_name = 'supplierprice' 
           AND column_name NOT IN ('supp_price_id', 
                 'region', 
                 'country', 
                 'net_id', 
                 'networkname', 
                 'mcc', 
                 'mnc', 
                 'mnp')") 
       or die("mysql error"); 

$columnArray=array(); 
$i=0; 
while($rows=mysql_fetch_array($ColumnNames)) 
{ 

$columnArray[]=$rows[0]; 

echo "<th style='width:67px;' class='. $columnArray[$i] .' >" . $columnArray[$i] . " 
      </th>"; 
$i++; 
} 

?> 

foreach($columnArray as $value) { 


//$columnArray[]=$rows1[0]; 

echo '<td style="width:67px;font-weight:'.$text.'" id="CPH_GridView1_xxx" width="0px;" class="'.$value.' '.$rows["net_id"].'"><p>'.$rows[$value].'</p></td>'; 
} 
+0

http://stackoverflow.com/questions/9570881/select-smallest-value-from-multiple-columns-with-php-mysql –

Trả lời

0

một câu trả lời cho vấn đề của bạn có thể đây :

1- trích tối thiểu của mỗi cột bằng cách truy vấn sql như thế này:

$res1=mysql_query('select min(6xx) as min6, min(8xx)as min8, min(9xx) as min9, min(11xx)as min11, min(12xx) as min12 from tbl_name'); 

$rec1=mysql_fetch_array($res1); 

$min6=rec1['min6']; 

$min8=rec1['min8']; 

$min9=rec1['min9']; 

.... 

2- khi bạn lấy thông tin trong html bạn nên kiểm tra nếu giá trị là như phút sau đó nền (một số css) trở thành màu xanh lá cây:

$res=mysql_query('select * from tbl_name'); 
echo "<table>"; 
foreach($rec=mysql_fetch_array($res)) 
{ 
echo "<tr>" 
    echo "<td"; 
     if($rec['6xx']==$min6) echo "class='green_cell' "; 
    echo ""; 
     echo $rec['6xx']; 
    echo "</td>"; 
    .... 

echo "</tr>" 
0

Không hoàn toàn chắc chắn về yêu cầu của bạn. Dường như bạn đang nhận được một số tên cột cho một bảng. Tôi đoán rằng bạn muốn nhận được các giá trị của các cột này và hiển thị chúng trong một bảng, làm nổi bật một giá trị có giá trị thấp nhất.

Nếu một số nội dung như thế này. Lấy các cột, lặp lại chúng một lần để hiển thị các tiêu đề. Đối với mỗi hàng, nó gọi một hàm có hiển thị chúng. Khóa của giá trị thấp nhất được tìm thấy (nếu 2 khóa chia sẻ giá trị thấp nhất thì sử dụng phím thấp nhất). Nó vòng quanh các cột trả về và lặp lại chúng, đưa ra một màu : # ff0000; trong kiểu cho cột giá trị thấp nhất.

<?php 

$dbHost = 'localhost'; // usually localhost 
$dbUsername = 'xxxx'; 
$dbPassword = 'xxxx'; 
$dbDatabase = 'xxxx'; 
$db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Unable to connect to Database Server."); 
mysql_select_db ($dbDatabase, $db) or die ("Could not select database."); 

$ColumnNames = mysql_query("SELECT GROUP_CONCAT(CONCAT('`', column_name, '`')) AS some_columns 
           FROM information_schema.COLUMNS 
          WHERE table_name = 'supplierprice' 
           AND column_name NOT IN ('supp_price_id', 
                 'region', 
                 'country', 
                 'net_id', 
                 'networkname', 
                 'mcc', 
                 'mnc', 
                 'mnp')") 
       or die("mysql error"); 

if($rows=mysql_fetch_array($ColumnNames)) 
{ 
    $sql = "SELECT ".$row['some_columns']." FROM supplierprice"; 
    $query_values = mysql_query($sql); 
    if($rows2=mysql_fetch_assoc($ColumnNames)) 
    { 
     echo "<tr>"; 
     foreach($rows2 AS $key=>$value) 
     { 
      echo "<th style='width:67px;' >".$key." </th>"; 
     } 
     echo "</tr>"; 
     process_row($rows2); 
     while($rows2=mysql_fetch_assoc($ColumnNames)) 
     { 
      process_row($rows2); 
     } 
    } 
} 

function process_row($in_row) 
{ 
    $lowest_values_key = min(array_keys($in_row, min($in_row))); 
    echo "<tr>"; 
    foreach($in_row AS $key=>$value) 
    { 
     echo "<td style='width:67px;".(($lowest_values_key == $key) ? 'color:#ff0000;' : '')."' >".$value." </th>"; 
    } 
    echo "</tr>"; 
} 

?> 
Các vấn đề liên quan