2014-07-22 20 views
5

ho una tabella con il seguente:Come selezionare valore più piccolo Da più colonne con 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 

mi piacerebbe trovare il valore più piccolo dalla colonna rendere quella colonna di essere di colore verde.

Ad esempio in 1 ° il valore più piccolo è 0,001 quindi voglio che sia di colore verde, per il secondo 0,002 è il valore più piccolo che voglio che sia di colore verde.

può uno mi guida come fare questo, grazie

sotto è il codice come ho selezionandolo dal database e la visualizzazione int in una tabella

<?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 –

risposta

0

una risposta per il problema potrebbe essere questo :

1- estratto minimo di ogni colonna da query SQL come questo:

$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- quando si recuperare informazioni in html si dovrebbe verificare se il valore è come minimo allora sfondo (alcuni css) diventerà verde:

$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

Non del tutto sicuro delle vostre esigenze. Sembra che tu stia ricevendo alcuni nomi di colonne per un tavolo. Presumo che tu voglia ottenere i valori di queste colonne e visualizzarle in una tabella, evidenziando quella con il valore più basso.

Se qualcosa di simile. Ottiene le colonne, le attraversa una volta per visualizzare le intestazioni. Per ogni riga, quindi chiama una funzione con le visualizza. Viene trovata la chiave del valore più basso (se 2 chiavi condividono il valore più basso, viene utilizzata la chiave più bassa). Fa il giro delle colonne restituite e le mette in risalto, mostrando un colore : # ff0000; nello stile per la colonna del valore più basso.

<?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>"; 
} 

?> 
Problemi correlati