Skip to content Skip to sidebar Skip to footer

Retrieve Data From Sql Database And Display In Tables - Display Certain Data According To Checkboxes Checked

I have created an sql database(with phpmyadmin) filled with measurements from which I want to call data between two dates( the user selects the DATE by entering in the HTML forms t

Solution 1:

Try to create your checkbox like below:

Solar_Time_Decimal<checkboxname='columns[]'value='1'>
GHI<checkboxname='columns[]'value='2'>
DiffuseHI<checkboxname='columns[]'value='3'>
Zenith_Angle<checkboxname='columns[]'value='4'>
DNI<checkboxname='columns[]'value='5'>

And try to hange your PHP code to this:

<?php//HTML forms -> variables$fromdate = isset($_POST['fyear']) ? $_POST['fyear'] : data("d/m/Y");
$todate = isset($_POST['toyear']) ? $_POST['toyear'] : data("d/m/Y");
$all = false;
$column_names = array('1' => 'Solar_Time_Decimal', '2'=>'GHI', '3'=>'DiffuseHI', '4'=>'Zenith_Angle','5'=>'DNI');
$column_entries = isset($_POST['columns']) ? $_POST['columns'] : array();
$sql_columns = array();
foreach($column_entriesas$i) {
   if(array_key_exists($i, $column_names)) {
    $sql_columns[] = $column_names[$i];
   }
}
if (empty($sql_columns)) {
 $all = true;
 $sql_columns[] = "*";
} else {
 $sql_columns[] = "DATE,Local_Time_Decimal";
}

//DNI CHECKBOX + ALL$tmp ="SELECT ".implode(",", $sql_columns)." FROM $database_Database_Test.$table_name where DATE>=\"$fromdate\" AND DATE<=\"$todate\""; 

$result = mysql_query($tmp);
echo"<table border='1' style='width:300px'>
<tr>
<th>DATE</th>
<th>Local_Time_Decimal</th>";
foreach($column_namesas$k => $v) { 
  if($all || (is_array($column_entries) && in_array($k, $column_entries)))
     echo"<th>$v</th>";
}
echo"</tr>";
while( $row = mysql_fetch_assoc($result))
{
    echo"<tr>";  
    echo"<td>" . $row['DATE'] . "</td>";   
    echo"<td>" . $row['Local_Time_Decimal'] . "</td>";  
    foreach($column_namesas$k => $v) { 
      if($all || (is_array($column_entries) && in_array($k, $column_entries))) {
         echo"<th>".$row[$v]."</th>";
       }
    }
    echo"</tr>";
}
echo'</table>';

if($result){
        echo"Successful";
    }
    else{
    echo"Enter correct dates";
    }
?><?php
mysql_close();?>

This solution consider your particular table columns but if your wish a generic solution you can try to use this SQL too:

$sql_names = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$database_Database_Test' AND TABLE_NAME = '$table_name'";

and use the result to construct the $column_names array.

Post a Comment for "Retrieve Data From Sql Database And Display In Tables - Display Certain Data According To Checkboxes Checked"