mercoledì 5 marzo 2014

tabella pivot con PHP

<?php
$connessione = mysql_connect("localhost", "root", "") or die("Connessione non riuscita: " . mysql_error());  //connessione al server
mysql_select_db("andrea") or die("Selezione del database non riuscita");

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
<title>Barra degli strumenti</title>

<style>
div {
float:left;
border-style:solid;
border-width:1px;
margin:5px;
padding:5px;

}
</style>

</head>

<body>

<?php
function tabellaPivot($tabella, $intestRig, $intestCol, $funzione, $valore) {
//inizializza intestazioni

$arrayRig = array() ;
$arrayCol = array() ;
//trova gli array delle intestazioni
//..per quanto riguarda le RIGHE..
$query = "SELECT DISTINCT $intestRig from $tabella order by $intestRig ";
$risultato = mysql_query($query) or die("Query fallita: " . mysql_error() );
while ( $riga = mysql_fetch_array($risultato, MYSQL_ASSOC) ) {
array_push($arrayRig, $riga[$intestRig] );
}
//..per quanto riguarda le COLONNE..
$query = "SELECT DISTINCT $intestCol from $tabella order by $intestCol ";
$risultato = mysql_query($query) or die("Query fallita: " . mysql_error() );
while ( $riga = mysql_fetch_array($risultato, MYSQL_ASSOC) ) {
array_push($arrayCol, $riga[$intestCol] );
}
//inizia a riportare i dati in formato tabellare
echo ("<table border='1'>") ;
//riporta intestazioni di colonna
echo "<tr>";
echo "<td></td>";
foreach ($arrayCol as  $valueCol) {
echo ("<td>$valueCol</td>") ;
}
echo "</tr>";
//riporta le RIGHE (intestazioni e dati)
foreach ($arrayRig as  $valueRig) {
echo "<tr>";
echo ("<td>$valueRig</td>") ;
foreach ($arrayCol as  $valueCol) {
$query = "SELECT $funzione($valore) as tot from $tabella where $intestRig = '$valueRig' and $intestCol = '$valueCol' ";
$risultato = mysql_query($query) or die("Query fallita: " . mysql_error() );
$riga = mysql_fetch_array($risultato, MYSQL_ASSOC) ;
echo ("<td>" . $riga['tot'] . "</td>") ;
}
echo "</tr>";
}
echo ("</table>") ;

}



?>







<div class="stack2">
<?php

echo "<div>" ;
tabellaPivot ("provaPivot",$intestRig ='mese',$intestCol ='anno',$funzione = 'count',$valore = 'accessi');
echo "</div>" ;echo "<div>" ;
tabellaPivot ("provaPivot",$intestRig ='mese',$intestCol ='anno',$funzione = 'sum',$valore = 'accessi');
echo "</div>" ;echo "<div>" ;
tabellaPivot ("provaPivot",$intestRig ='mese',$intestCol ='anno',$funzione = 'max',$valore = 'accessi');
echo "</div>" ;echo "<div>" ;
tabellaPivot ("provaPivot",$intestRig ='mese',$intestCol ='anno',$funzione = 'min',$valore = 'accessi');
echo "</div>" ;echo "<div>" ;
tabellaPivot ("provaPivot",$intestRig ='mese',$intestCol ='anno',$funzione = 'avg',$valore = 'accessi');
echo "</div>" ;
?>



</div>





</body>
</html>

Nessun commento:

Posta un commento