Dividere risultati per data e pagine diverse

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
Salve a tutti ho un piccolo problemino in pratica estraggo dei dati che somma per mese anno e me li riporta nella tabella in ordine di data il tutt funziona perfettamente solo che mi mette in ordine tutti i mesi vorrei visualizzare i mesi separatamente a pagine singole il codice e questo:
PHP:
<style type="text/css">
body {
	background-color: #CCCCCC;
	background-image: url(./images/bg.png);
	background-repeat:repeat-x ;
	font-family:Arial, Helvetica, sans-serif;
	padding-top:60px;	
}
#header {
	text-align:center;
	padding-bottom:30px;
	}
</style>
<div id="header">
<img src="images/logo.png" height="100" width="800" />
</div>




<?php    
// CONNESSIONE AL DATABASE  
include ("conn.php"); 
$querystat = "SELECT SUM(ORA_1) + (ORA_2) + (ORA_3) + (ORA_4) + (ORA_5) + (ORA_6) + (ORA_7) + (ORA_8) + (ORA_9) + (ORA_10) + (ORA_11) + (ORA_12) + (ORA_13) + (ORA_14) + (ORA_15) + (ORA_16) + (ORA_17) + (ORA_18) + (ORA_19) + (ORA_20) + (ORA_21) + (ORA_22) + (ORA_23) + (ORA_24) + (ORA_25) + (ORA_26) + (ORA_27) + (ORA_28) + (ORA_29) + (ORA_30) + (ORA_31) somma, DATE_FORMAT(DATA,'%Y/%m') mese, ID_UTENTE, NOME_UTENTE FROM gps_personale GROUP BY ID_UTENTE, DATA ORDER BY DATA DESC"; 
$risultato = mysql_query($querystat);  
while ($record = mysql_fetch_array($risultato)) {  

$mese = $record["mese"];
$id_utente= $record["ID_UTENTE"];
$nome_utente= $record["NOME_UTENTE"];
$totimp = $record["somma"];


 


// CREA CODICE HTML
?>

<body bgcolor ="#808080">
	<table align="center" bgcolor ="#FFA500" width="600" height="25" border=2>
	
<tr>
<td align="center" bgcolor ="#FFA500" width="25"><font color="#000000">ID_UTENTE</font></td>
	<td align="center" bgcolor ="#FFA500" width="150"><font color="#000000">NOME_UTENTE</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">DATA</font></td>
	<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">TOTALE ORA</font></td>

<tr>
<td align="center" width="25" height="25">
	<font color="#0000FF"><?php echo $id_utente;?></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $nome_utente;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $mese;?></font></td>
<td align="center" width="60" height="25">
	<font color="#0000FF"><?php echo $totimp;?></font></td>
</table>
<br>
<?php



}
}
?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, pagine singole nel senso che cliccando su un mese da un menu visualizzi soltanto quel mese?
devi usare più o meno la stessa tecnica della paginazione
dai un occhiata a questo script che è molto semplice da comprendere
 

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
Ciao Cri grazie per la risposta, ho dato uno sguardo allo script da te postatomi e da come ho capito con quello limito i risultati per numero prestabilito in ogni pagina.

Io non devo limitare un numero prestabilito perche tale numero non e sempre uguale a me interessa che limiti per mese (tutti i report di quel mese in una pagina).
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
forse dico una put....ta, ma potresti vedere di risolvere in questa maniera,
evidente che devi formattare il mese nella <select> nel modo da ottenere la querystat giusta
PHP:
<script>
        function selectPost()
        {
            document.modulo.method = "post";
            document.modulo.action = "<?php $_SERVER['PHP_SELF']; ?>";
            document.modulo.submit();
        }
</script>
<?php
$mesi=array('01'=>'gennaio',...... '12'=>'dicembre');
?>
<form action="#" name="modulo" method="post">
<select name="mese" id="mese" size="20"  onchange="selectPost()" >
<?php
foreach($mesi as $num =>$mese){
	echo "<option value=\"$num\">$mese</option>";
}
?>
</select>
</form>
<?php
if(isset($_POST['mese'])){
	$mese=$_POST['mese'];
	$querystat = "SELECT SUM(ORA_1) + ... + (ORA_31) somma, DATE_FORMAT(DATA,'%Y/%m') mese, ID_UTENTE, NOME_UTENTE FROM gps_personale WHERE mese='$mese' GROUP BY ID_UTENTE, DATA ORDER BY DATA DESC";  
	//ecc.......
}
?>
selezionado il mese dovresti ottenere una pagina relativa al mese
 

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
ho riscritto il codice facendo come hai postato tu la colonna di selezione appare ma quando ci clicco sopra non mi restituisce i dati

PHP:
<style type="text/css">
body {
    background-color: #CCCCCC;
    background-image: url(./images/bg.png);
    background-repeat:repeat-x ;
    font-family:Arial, Helvetica, sans-serif;
    padding-top:60px;    
}
#header {
    text-align:center;
    padding-bottom:30px;
    }
</style>
<div id="header">
<img src="images/logo.png" height="100" width="800" />
</div>

<script>
        function selectPost()
        {
            document.modulo.method = "post";
            document.modulo.action = "<?php $_SERVER['PHP_SELF']; ?>";
            document.modulo.submit();
        }
</script>
<?php
$mesi=array('01'=>'gennaio','02'=>'febbraio','03'=>'marzo','04'=>'aprile','05'=>'maggio','06'=>'giugno','07'=>'luglio','08'=>'agosto','09'=>'settembre','10'=>'ottobre','11'=>'novembre','12'=>'dicembre');?>
<form action="#" name="modulo" method="post">
<select name="mese" id="mese" size="20"  onchange="selectPost()" >
<?php
foreach($mesi as $num =>$mese){
    echo "<option value=\"$num\">$mese</option>";
}
?>
</select>
</form>
<?php    
// CONNESSIONE AL DATABASE  
include ("conn.php");
 if(isset($_POST['mese'])){
    $mese=$_POST['mese'];
$querystat = "SELECT SUM(ORA_1) + (ORA_2) + (ORA_3) + (ORA_4) + (ORA_5) + (ORA_6) + (ORA_7) + (ORA_8) + (ORA_9) + (ORA_10) + (ORA_11) + (ORA_12) + (ORA_13) + (ORA_14) + (ORA_15) + (ORA_16) + (ORA_17) + (ORA_18) + (ORA_19) + (ORA_20) + (ORA_21) + (ORA_22) + (ORA_23) + (ORA_24) + (ORA_25) + (ORA_26) + (ORA_27) + (ORA_28) + (ORA_29) + (ORA_30) + (ORA_31) somma, DATE_FORMAT(DATA,'%Y/%m') mese, ID_UTENTE, NOME_UTENTE FROM gps_personale WHERE mese='$mese' GROUP BY ID_UTENTE, DATA ORDER BY DATA DESC"; 
$risultato = mysql_query($querystat);  
while ($record = mysql_fetch_array($risultato)) {  

$mese = $record["mese"];
$id_utente= $record["ID_UTENTE"];
$nome_utente= $record["NOME_UTENTE"];
$totimp = $record["somma"];


 


// CREA CODICE HTML
?>

<body bgcolor ="#808080">
    <table align="center" bgcolor ="#FFA500" width="600" height="25" border=2>
    
<tr>
<td align="center" bgcolor ="#FFA500" width="25"><font color="#000000">ID_UTENTE</font></td>
    <td align="center" bgcolor ="#FFA500" width="150"><font color="#000000">NOME_UTENTE</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">DATA</font></td>
    <td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">TOTALE ORA</font></td>

<tr>
<td align="center" width="25" height="25">
    <font color="#0000FF"><?php echo $id_utente;?></td>
<td align="center" width="60" height="25">
    <font color="#0000FF"><?php echo $nome_utente;?></font></td>
<td align="center" width="60" height="25">
    <font color="#0000FF"><?php echo $mese;?></font></td>
<td align="center" width="60" height="25">
    <font color="#0000FF"><?php echo $totimp;?></font></td>
</table>
<br>
<?php
}
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
la prima verifica è guardare se il formato di $mese è quello che hai nel campo mese.
io ho messo 01 02 ..... 12, ma se nel campo c'è es. gen, feb,....dic non trova nulla
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
intanto metti un bel var_dump per verificare la query
PHP:
<?php
//....
 if(isset($_POST['mese'])){
    $mese=$_POST['mese'];
$querystat = "SELECT SUM(ORA_1) + (ORA_2) + (ORA_3) + (ORA_4) + (ORA_5) + (ORA_6) + (ORA_7) + (ORA_8) + (ORA_9) + (ORA_10) + (ORA_11) + (ORA_12) + (ORA_13) + (ORA_14) + (ORA_15) + (ORA_16) + (ORA_17) + (ORA_18) + (ORA_19) + (ORA_20) + (ORA_21) + (ORA_22) + (ORA_23) + (ORA_24) + (ORA_25) + (ORA_26) + (ORA_27) + (ORA_28) + (ORA_29) + (ORA_30) + (ORA_31) somma, DATE_FORMAT(DATA,'%Y/%m') mese, ID_UTENTE, NOME_UTENTE FROM gps_personale WHERE mese='$mese' GROUP BY ID_UTENTE, DATA ORDER BY DATA DESC";  
var_dump($querystat);
//....
?>
guardando soprattutto cosa risulta nel punto ...WHERE mese='$mese' GROUP BY....
 

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
Mi restituisce questo:


string(480) "SELECT SUM(ORA_1) + (ORA_2) + (ORA_3) + (ORA_4) + (ORA_5) + (ORA_6) + (ORA_7) + (ORA_8) + (ORA_9) + (ORA_10) + (ORA_11) + (ORA_12) + (ORA_13) + (ORA_14) + (ORA_15) + (ORA_16) + (ORA_17) + (ORA_18) + (ORA_19) + (ORA_20) + (ORA_21) + (ORA_22) + (ORA_23) + (ORA_24) + (ORA_25) + (ORA_26) + (ORA_27) + (ORA_28) + (ORA_29) + (ORA_30) + (ORA_31) somma, DATE_FORMAT(DATA,'%Y/%m') mese, ID_UTENTE, NOME_UTENTE FROM gps_personale WHERE mese='04' GROUP BY ID_UTENTE, DATA ORDER BY DATA DESC"
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, dovresse essere così
PHP:
WHERE MONTH(DATA) = '$mese'
vedo che mese è 04 forse è meglio che sia solo 4 al massimo risolvi con (int)
PHP:
$mese = (int) $mese;
 

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
Perfetto funziona tutto grazie gentilissimi come sempre ma se volessi selezionare anche l' anno?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
fai una <select> con gli anni (però devi aggiustare il form con un submit o modificare il js)

PHP:
<?php
//....
$mese=$_POST['mese']; 
$anno=$_POST['anno'];
//...
$querystat = "SELECT..... WHERE WHERE MONTH(DATA) = '$mese'  AND WHERE YEAR(DATA) = '$anno' ....";
//...
?>

ha ragione criric non mi ero accorto della formattazione della data e pensavo che mese fose un campo a parte
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
@Borgo
hai messo troppi WHERE ... ne basta uno :)
 

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
mi sa che non ho capito bene come modificare ho fatto in questo modo ma non funziona

PHP:
<style type="text/css">
body {
    background-color: #CCCCCC;
    background-image: url(./images/bg.png);
    background-repeat:repeat-x ;
    font-family:Arial, Helvetica, sans-serif;
    padding-top:60px;    
}
#header {
    text-align:center;
    padding-bottom:30px;
    }
</style>
<div id="header">
<img src="images/logo.png" height="100" width="800" />
</div>

<script>
        function selectPost()
        {
            document.modulo.method = "post";
            document.modulo.action = "<?php $_SERVER['PHP_SELF']; ?>";
            document.modulo.submit();
        }
            
            
</script>
<?php
$mesi=array('01'=>'gennaio','02'=>'febbraio','03'=>'marzo','04'=>'aprile','05'=>'maggio','06'=>'giugno','07'=>'luglio','08'=>'agosto','09'=>'settembre','10'=>'ottobre','11'=>'novembre','12'=>'dicembre');
$anni=array('2013'=>'2013','2014'=>'2014','2015'=>'2015');
?>
<form action="#" name="modulo" method="post">
<select name="mese" id="mese" size="10"  onchange="selectPost()" >

<?php
foreach($mesi as $num =>$mese){
    echo "<option value=\"$num\">$mese</option>";
}
?>
</select>
<form action="#" name="modulo" method="post">
<select name="anno" id="anno" size="10"  onchange="selectPost()" >
<?php
foreach($anni as $num =>$anno){
    echo "<option value=\"$num\">$anno</option>";
}
?>
</select>
</form>
<?php    
// CONNESSIONE AL DATABASE  
include ("conn.php");
 if(isset($_POST['mese'],$_POST['anno'])){
    $mese=$_POST['mese'];
	$anno=$_POST['anno']; 
$querystat = "SELECT SUM(ORA_1) + (ORA_2) + (ORA_3) + (ORA_4) + (ORA_5) + (ORA_6) + (ORA_7) + (ORA_8) + (ORA_9) + (ORA_10) + (ORA_11) + (ORA_12) + (ORA_13) + (ORA_14) + (ORA_15) + (ORA_16) + (ORA_17) + (ORA_18) + (ORA_19) + (ORA_20) + (ORA_21) + (ORA_22) + (ORA_23) + (ORA_24) + (ORA_25) + (ORA_26) + (ORA_27) + (ORA_28) + (ORA_29) + (ORA_30) + (ORA_31) somma, DATE_FORMAT(DATA,'%Y/%m') mese, ID_UTENTE, NOME_UTENTE FROM gps_personale WHERE MONTH(DATA) = '$mese' AND WHERE YEAR(DATA) = '$anno' GROUP BY ID_UTENTE, DATA ORDER BY DATA DESC";
$risultato = mysql_query($querystat);  
while ($record = mysql_fetch_array($risultato)) {  

$mese = $record["mese"];
$id_utente= $record["ID_UTENTE"];
$nome_utente= $record["NOME_UTENTE"];
$totimp = $record["somma"];


 


// CREA CODICE HTML
?>

<body bgcolor ="#808080">
    <table align="center" bgcolor ="#FFA500" width="600" height="25" border=2>
    
<tr>
<td align="center" bgcolor ="#FFA500" width="25"><font color="#000000">ID_UTENTE</font></td>
    <td align="center" bgcolor ="#FFA500" width="150"><font color="#000000">NOME_UTENTE</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">DATA</font></td>
    <td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">TOTALE ORA</font></td>

<tr>
<td align="center" width="25" height="25">
    <font color="#0000FF"><?php echo $id_utente;?></td>
<td align="center" width="60" height="25">
    <font color="#0000FF"><?php echo $nome_utente;?></font></td>
<td align="center" width="60" height="25">
    <font color="#0000FF"><?php echo $mese;?></font></td>
<td align="center" width="60" height="25">
    <font color="#0000FF"><?php echo $totimp;?></font></td>
</table>
<br>
<?php
}
}

?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
prova così
PHP:
echo "<option value=\"$anno\">$anno</option>";
come fai tu trasmetti la chiave numerica cioè 0, 1 , 2 ecc... e nel db gli anni non si chiamano certo così
 

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
niente da fare ma mi chiedo in questo sistema seleziona anno e mese?


PHP:
<style type="text/css">
body {
    background-color: #CCCCCC;
    background-image: url(./images/bg.png);
    background-repeat:repeat-x ;
    font-family:Arial, Helvetica, sans-serif;
    padding-top:60px;    
}
#header {
    text-align:center;
    padding-bottom:30px;
    }
</style>
<div id="header">
<img src="images/logo.png" height="100" width="800" />
</div>

<script>
        function selectPost()
        {
            document.modulo.method = "post";
            document.modulo.action = "<?php $_SERVER['PHP_SELF']; ?>";
            document.modulo.submit();
        }
            
            
</script>
<?php
$mesi=array('01'=>'gennaio','02'=>'febbraio','03'=>'marzo','04'=>'aprile','05'=>'maggio','06'=>'giugno','07'=>'luglio','08'=>'agosto','09'=>'settembre','10'=>'ottobre','11'=>'novembre','12'=>'dicembre');
$anni=array('2013'=>'2013','2014'=>'2014','2015'=>'2015');
?>
<form action="#" name="modulo" method="post">
<select name="mese" id="mese" size="10"  onchange="selectPost()" >

<?php
foreach($mesi as $num =>$mese){
    echo "<option value=\"$num\">$mese</option>";
}
?>
</select>
<form action="#" name="modulo" method="post">
<select name="anno" id="anno" size="10"  onchange="selectPost()" >
<?php
foreach($anni as $num =>$anno){
    echo "<option value=\"$anno\">$anno</option>";
}
?>
</select>
</form>
<?php    
// CONNESSIONE AL DATABASE  
include ("conn.php");
 if(isset($_POST['mese'],$_POST['anno'])){
    $mese=$_POST['mese'];
	$anno=$_POST['anno']; 
$querystat = "SELECT SUM(ORA_1) + (ORA_2) + (ORA_3) + (ORA_4) + (ORA_5) + (ORA_6) + (ORA_7) + (ORA_8) + (ORA_9) + (ORA_10) + (ORA_11) + (ORA_12) + (ORA_13) + (ORA_14) + (ORA_15) + (ORA_16) + (ORA_17) + (ORA_18) + (ORA_19) + (ORA_20) + (ORA_21) + (ORA_22) + (ORA_23) + (ORA_24) + (ORA_25) + (ORA_26) + (ORA_27) + (ORA_28) + (ORA_29) + (ORA_30) + (ORA_31) somma, DATE_FORMAT(DATA,'%Y/%m') mese, ID_UTENTE, NOME_UTENTE FROM gps_personale WHERE MONTH(DATA) = '$mese' AND WHERE YEAR(DATA) = '$anno' GROUP BY ID_UTENTE, DATA ORDER BY DATA DESC";
$risultato = mysql_query($querystat);  
while ($record = mysql_fetch_array($risultato)) {  

$mese = $record["mese"];
$id_utente= $record["ID_UTENTE"];
$nome_utente= $record["NOME_UTENTE"];
$totimp = $record["somma"];


 


// CREA CODICE HTML
?>

<body bgcolor ="#808080">
    <table align="center" bgcolor ="#FFA500" width="600" height="25" border=2>
    
<tr>
<td align="center" bgcolor ="#FFA500" width="25"><font color="#000000">ID_UTENTE</font></td>
    <td align="center" bgcolor ="#FFA500" width="150"><font color="#000000">NOME_UTENTE</font></td>
<td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">DATA</font></td>
    <td align="center" bgcolor ="#FFA500" width="60"><font color="#000000">TOTALE ORA</font></td>

<tr>
<td align="center" width="25" height="25">
    <font color="#0000FF"><?php echo $id_utente;?></td>
<td align="center" width="60" height="25">
    <font color="#0000FF"><?php echo $nome_utente;?></font></td>
<td align="center" width="60" height="25">
    <font color="#0000FF"><?php echo $mese;?></font></td>
<td align="center" width="60" height="25">
    <font color="#0000FF"><?php echo $totimp;?></font></td>
</table>
<br>
<?php
}
}

?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Dividere risultati in colonna in base al contenuto PHP 9
alankanz dividere risultati in pagine MySqli PHP 4
camilia Come posso dividere le grandi dimensioni del file PST? Windows e Software 2
gandalf1959 [PHP] Dividere un campo di testo in più campi PHP 9
P [HTML] [PHP] dividere lo schermo in tre colonne HTML e CSS 110
L [WordPress] Dividere articoli in più pagine, problemi SEO? WordPress 2
M Dividere immagine a metà in diagonale Photoshop 1
Z Dividere settimane PHP 3
M Dividere su piu pagine un articolo lungo prelevato da db. jQuery 0
P Dividere lo schermo in tre colonne HTML e CSS 1
G Dividere stringa ed eseguire query PHP 3
P Dividere lo schermo in tre colonne HTML e CSS 6
L Dividere classe in più parti PHP 3
S Dividere una textarea PHP 1
A Dividere array multidimensionale in altri array multidimensionali PHP 9
A dividere il risultato di una Query in più pagine Classic ASP 1
redevilduil dividere la gallery in pagine con php PHP 3
C Dividere un div in due colonne Javascript 2
U E' possibile dividere un' immagine o un background in celle? jQuery 0
M Dividere Stringhe per MySQL PHP 6
E e se volessi dividere le mie pagine? PHP 2
renoir09 software dividere sql su mac Database 1
haringk Dividere ciclo in più parti PHP 12
C dividere un'immagine in più parti Webdesign e Grafica 3
L Dividere campo PHP 2
S dividere un wmv con movie maker Windows e Software 0
A dividere dato 32 bit in 4 byte Programmazione 2
B dividere Home Page in 5 sezioni con CSS HTML e CSS 1
metalgemini dividere in piu colonne il risultato di una query Classic ASP 4
G come dividere la pagina in 2 frame??!! HTML e CSS 5
M Come si fa a dividere un documento in più colonne in dreamweaver Flash 0
F stampare a video i risultati della query PHP 1
P Passare i risultati di un foreach in un modal. Help! PHP 2
G eseguire calcoli matematici su risultati 2 tabelle mysql PHP 4
TpD Incolonnare risultati query (mysql_result deprecato...) PHP 3
S come togliere un post dai risultati di google? Supporto Mr.Webmaster 5
M Filtrare risultati con valori checkbox passati con jquery jQuery 2
M [PHP] Mostrare risultati di una tabella ma solo se ID è attivo PHP 0
A [MySQL] Ottenere più risultati in un unico campo MySQL 7
Alex_70 [PHP] Ricerca con risultati cliccabili PHP 21
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
A [PHP] If e Else paginazione ok ci sono risultati no ma avanti lo stesso PHP 15
G [PHP] operazione matematica tra risultati di query PHP 5
Sangy PHP risultati negativi in rosso PHP 2
P Google risultati di ricerca inappropriati SEO e Posizionamento 1
D [PHP] questi risultati in una tabella PHP 4
trattorino [PHP] Risultati dentro array precisi e confrontabili PHP 7
MikSkagit [PHP] Risultati a video sulla stessa riga PHP 12
V [ASP] paginazione-risultati-query-grandi-dimensioni Classic ASP 8
L [PHP] Creare un uploader di file csv xls e ricercare i risultati PHP 0

Discussioni simili