Ricerca divisa per mesi

secondo te che c'è che non va nel codice da non essere neanche caricato
PHP:
<?php
//.....
include "include/config.php"; //Connect to Database
include "include/connect.php"; //Connect to Database
if(isset($_POST['cerca'])){
    if($_POST['mese']=="" || $_POST['anno']==""){
        //messaggio e ritorno al form
    }else{//mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
        //trasformo in timestamp
        $da=mktime(0,0,0,(int)($_POST['mese'],1,$_POST['anno']);//qui probabilmente devi provare se va bene 31 o 30 o 28 o 29 in funzione del mese
        $a=mktime(59,59,59,int($_POST['mese'],31,$_POST['anno']);
        $query="SELECT * FROM stat_traffic WHERE dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a ORDER BY dataora_inizio_chiamata";//oppure usando BETWEN
        //ecc.....
    }
//.....
}
//........
?>
 
ciao
notavo adesso, hai

PHP:
<?php
<?php
$mesi=array('01'=>'gen','02'=>'feb','03'=>'mar','04'=>'apr','05'=>'mag','06'=>'giu','07'=>'lug','08'=>'ago','09'=>'set','10'=>'ott','11'=>'nov','12'=>'dic');
?>
togli un <?php
PHP:
<?php
$mesi=array('01'=>'gen','02'=>'feb','03'=>'mar','04'=>'apr','05'=>'mag','06'=>'giu','07'=>'lug','08'=>'ago','09'=>'set','10'=>'ott','11'=>'nov','12'=>'dic');
?>

se l'hai scritto così ti da errore
 
lo avevo già corretto l'errore si trova nella seconda parte del codice quella che richiamo con il form, non capisco :(

cerca_data.php
PHP:
<?php
// forse meglio array(1=>'gen',....
$mesi=array('01'=>'gen','02'=>'feb','03'=>'mar','04'=>'apr','05'=>'mag','06'=>'giu','07'=>'lug','08'=>'ago','09'=>'set','10'=>'ott','11'=>'nov','12'=>'dic');
?>
<form action="cerca_data_2.php" method="post">
mese <select name="mese">
    <option value="">- seleziona mese-</option>
<?php
foreach($mesi as $num => $nome){
  echo "<option value=\"$num\">$nome</option>";
}
?>
</select><br />
anno<select name="anno">
    <option value="">- seleziona anno-</option>
<?php
for($aa=2013; $aa <2020; $aa++){
  echo "<option value=\"$aa\">$aa</option>";
}
?>
</select><br />
<input name="cerca" type="submit" id="cerca" value="cerca">
</form>

cerca_data_2.php

PHP:
<?php
//.....
include "include/config.php"; //Connect to Database
include "include/connect.php"; //Connect to Database
if(isset($_POST['cerca'])){
    if($_POST['mese']=="" || $_POST['anno']==""){
        //messaggio e ritorno al form
    }else{//mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
        //trasformo in timestamp
        $da=mktime(0,0,0,(int)($_POST['mese'],1,$_POST['anno']);//qui probabilmente devi provare se va bene 31 o 30 o 28 o 29 in funzione del mese
        $a=mktime(59,59,59,(int)($_POST['mese'],31,$_POST['anno']);
        $query="SELECT * FROM stat_traffic WHERE dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a ORDER BY dataora_inizio_chiamata";//oppure usando BETWEN
        //ecc.....
    }
//.....
}
//........
?>

l'errore è in cerca_data_2.php - errore del server come al solito :S
 
Ultima modifica:
ciao
adesso funzia (avevo o avevi) fatto un errore di battitura nel mktime... c'era una parentesi in più
provalo così (ho commentato gli include perche non ho i file, poi mel ritorno al form mrtti il nome del tuo file)
PHP:
<?php
// forse meglio array(1=>'gen',....
$mesi=array('01'=>'gen','02'=>'feb','03'=>'mar','04'=>'apr','05'=>'mag','06'=>'giu','07'=>'lug','08'=>'ago','09'=>'set','10'=>'ott','11'=>'nov','12'=>'dic');
if(isset($_POST['cerca'])){
	echo $_POST['mese']."<br>";
	echo $_POST['anno']."<br>";
}
?>
<form action="cerca_data_2.php" method="post">
mese <select name="mese">
    <option value="">- seleziona mese-</option>
<?php
foreach($mesi as $num => $nome){
  echo "<option value=\"$num\">$nome</option>";
}
?>
</select><br />
anno<select name="anno">
    <option value="">- seleziona anno-</option>
<?php
for($aa=2013; $aa <2020; $aa++){
  echo "<option value=\"$aa\">$aa</option>";
}
?>
</select><br />
<input name="cerca" type="submit" id="cerca" value="cerca">
</form>
PHP:
<?php
//.....
//include "include/config.php"; //Connect to Database
//include "include/connect.php"; //Connect to Database
if(isset($_POST['cerca'])){
	if($_POST['mese']=="" || $_POST['anno']==""){
    	echo "non inserito il mese o l'anno";
		echo "<meta http-equiv='Refresh' content='3; URL=000002.php'>";
	}else{//mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
		//trasformo in timestamp
		$da=mktime(0,0,0,(int)$_POST['mese'],1,(int)$_POST['anno']);//qui probabilmente devi provare se va bene 31 o 30 o 28 o 29 in funzione del mese
		$a=mktime(59,59,59,(int)$_POST['mese'],31,$_POST['anno']);
		echo "inserito mese ".(int)$_POST['mese']." e anno ".(int)$_POST['anno']."<br />";
		$query="SELECT * FROM stat_traffic WHERE dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a ORDER BY dataora_inizio_chiamata";//oppure usando BETWEN
		echo "$query<br />";
                //ecc.....
	}
        //.....
}
//........
?>
per verificarlo ho messo degli echo, poi toglili
 
Ora non da errore solo che al termine della ricerca mi restituisce questo:
inserito mese 1 e anno 2013
SELECT * FROM stat_traffic WHERE dataora_inizio_chiamata >= 1356994800 AND dataora_inizio_chiamata <= 1359802799 ORDER BY dataora_inizio_chiamata
 
ciao
per forza lo script si ferma li, ma era solo per vedere se funzionava, da li in poi devi provarlo tu perche non ho il tuo db+tabella/e e quindi non posso provarlo
comunque (tolte gli echo messi per provare) devi proseguire interrogndo il db e estrarre i dati dei record tra data e data.

ecco, ti faccio uno schema
PHP:
<?php
//....
		$query="SELECT * FROM stat_traffic WHERE dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a ORDER BY dataora_inizio_chiamata";//oppure usando BETWEN
        //echo "$query<br />";
		$ris=mysql_query($query);
		if(mysql_num_rows($ris)==0){
			echo "non ci sono record tra le date cercate"; //e ritorno a dove vuoi tu
		}else{
			//estrai i record pe vedere i campi
			while($riga=mysql_fetch_array($ris)){
				echo "descrizione 1".$riga['nome_campo_1']."<br />";
				echo "descrizione 2".$riga['nome_campo_2']."<br />";
				//ecc... per tutti i campi che vuoi visualizzare, con layuout da definire
			}
		}
                //ecc.....
    } 
//.....
?>
 
funziona perfettamente ma bisogna chiudere con un'altra } altrimenti da errore, cmq sei un grande, ci aggiorniamo a domani hehehe ;)
 
ciao
ti do (dimenticato prima) anche un'indicazione del layout per visualizzare i dati
PHP:
<?php
//....
        $query="SELECT * FROM stat_traffic WHERE dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a ORDER BY dataora_inizio_chiamata";//oppure usando BETWEN
        //echo "$query<br />";
        $ris=mysql_query($query);
        if(mysql_num_rows($ris)==0){
            echo "non ci sono record tra le date cercate"; //e ritorno a dove vuoi tu
        }else{
            //estrai i record pe vedere i campi
            echo "<table>";
			echo "<tr><th>area</th><th>data<th></tr>";//tra altri <th>...</th> gli altri nomi
			while($riga=mysql_fetch_array($ris)){
				$area=$riga['area_geografica'];
				//ricorda che il campo dataora_inizio_chiamata l'hai in timestamp quindi prima devi trasformarlo
				$data=date("d m Y H:i:s",$riga['dataora_inizio_chiamata']);
				//e gli altri campi
				echo "<tr><td>$area</td><td>$data</td></tr>";//tra altri <td>...</td> gli altri valori estratti
            }
			echo "</table>";
        }
                //ecc.....
    } 
//.....
?>
 
ciao
mi è venuto un piccolo dubbio, mentre il primo gg del mese è sempre lo stesso cioè 1, l'ultimo può essere 30 o 31 o 28 o 29 se bisestile, quindi non vorrei che
$a=mktime(59,59,59,(int)$_POST['mese'],31,$_POST['anno']);
nel caso es. tu indicassi febbraio 2013 il fatto che in mktime ci sia 31 possa vada in errore.
quindi ho fatto una funzione, times_ultimo_gg($m,$a), che verifica quale è l'ultimo gg del mese, scrivila all'inzio (o mettila in un file da includere) e modifica la riga con $a
PHP:
<?php
//.....
function times_ultimo_gg($m,$a){//$m: mese da 1 a 12, $a: anno numero di 4 cifre
	$m=(int)$m;
	$a=(int)$a;
	for($k=31; $k >=28; $k--){//31 30 29 28
		if(checkdate($m, $k, $a){//verifico per il mese/anno quale è l'ultimo gg, quello giusto da true
			return mktime(59,59,59,$m,$k,$a);
		}
	}
}
include "include/config.php"; //Connect to Database
include "include/connect.php"; //Connect to Database
if(isset($_POST['cerca'])){
    if($_POST['mese']=="" || $_POST['anno']==""){
        echo "non inserito il mese o l'anno";
        echo "<meta http-equiv='Refresh' content='3; URL=000002.php'>";
    }else{//mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
        //trasformo in timestamp
        $da=mktime(0,0,0,(int)$_POST['mese'],1,(int)$_POST['anno']);//qui probabilmente devi provare se va bene 31 o 30 o 28 o 29 in funzione del mese
        //$a=mktime(59,59,59,(int)$_POST['mese'],31,$_POST['anno']);//vecchio
		$a=times_ultimo_gg($_POST['mese'],$_POST['anno']);//modifica
        echo "inserito mese ".(int)$_POST['mese']." e anno ".(int)$_POST['anno']."<br />";
        $query="SELECT * FROM stat_traffic WHERE dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a ORDER BY dataora_inizio_chiamata";//oppure usando BETWEN
        echo "$query<br />";
                //ecc.....
    }
        //.....
}
//........
?>
 
Buondì Borgo, ho provato a mettere febbraio e non da errore ;9 cmq con la tua funzione risulta più stabile e corretta la cosa, ora mi stavo approcciando ad mettere oltre che al mese ed anno anche una divisione per il contratto così guarda:

cerca_data.php

PHP:
<?php
// forse meglio array(1=>'gen',....
$mesi=array('01'=>'gen','02'=>'feb','03'=>'mar','04'=>'apr','05'=>'mag','06'=>'giu','07'=>'lug','08'=>'ago','09'=>'set','10'=>'ott','11'=>'nov','12'=>'dic');
?>
<form action="cerca_data_2.php" method="post">
mese <select name="mese">
    <option value="">- seleziona mese-</option>
<?php
foreach($mesi as $num => $nome){
  echo "<option value=\"$num\">$nome</option>";
}
?>
</select><br />
anno<select name="anno">
    <option value="">- seleziona anno-</option>
<?php
for($aa=2013; $aa <2020; $aa++){
  echo "<option value=\"$aa\">$aa</option>";
}
?>
</select><br />
Contratto<select name="contratto">
    <option value="">- seleziona contratto-</option>
<?php 
require 'include/config.php'; // ho usato una tabella che avevo gia compilato ma si poteva usare sempre un array
require 'include/connect.php';
$sql_voip="SELECT * FROM contratti;";
$prodotti=MYSQL_QUERY($sql_voip) or die (mysql_error()); 
while($riga = mysql_fetch_array($prodotti)){ 
    $id=$riga['num_contratto']; 
    $nome=$riga['cognome']; 
	$nome2=$riga['nome']; 
    echo "<option value=\"$id\">$nome $nome2 </option>"; 
} 
?>
</select><br />
<input name="cerca" type="submit" id="cerca" value="cerca">
</form>

cerca_data_2.php

PHP:
<?php
//.....
include "include/config.php"; //Connect to Database
include "include/connect.php"; //Connect to Database
if(isset($_POST['cerca'])){ 
    if($_POST['mese']=="" || $_POST['anno']=="" || $_POST['contratto']==""){ 
        echo "non inserito il mese o l'anno o il contratto"; 
        echo "<meta http-equiv='Refresh' content='3; URL=cerca_data.php'>"; 
    }else{//mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] ) 
        //trasformo in timestamp 
        $da=mktime(0,0,0,(int)$_POST['mese'],1,(int)$_POST['anno']);
        $a=mktime(59,59,59,(int)$_POST['mese'],31,$_POST['anno']); 
        echo "inserito mese ".(int)$_POST['mese']."  anno ".(int)$_POST['anno']."  contratto ".$_POST['contratto']"<br />"; 
        $query="SELECT * FROM stat_traffic WHERE dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a ORDER BY dataora_inizio_chiamata";//oppure usando BETWEN 
        //echo "$query<br />"; 
        $ris=mysql_query($query); 
        if(mysql_num_rows($ris)==0){ 
            echo "non ci sono record tra le date cercate"; //e ritorno a dove vuoi tu 
        }else{ 
            //Creao una tabellazione dove inserisco i risultati ricavati
			
			echo '
<center><table width="1000" border="0" cellpadding="5" cellspacing="10">
	<tr>
		<th bgcolor="#CEECF5">Area Geografica</th>
		<th bgcolor="#CEECF5">Inizio Chiamata</th>
		<th bgcolor="#CEECF5">Numero Origine</th>
		<th bgcolor="#CEECF5">Numero Destinazione</th>
		<th bgcolor="#CEECF5">Codice</th>
		<th bgcolor="#CEECF5">Costo Chiamata</th>
		<th bgcolor="#CEECF5">Durata Connessione</th>
	</tr></center>';
	
            while($riga=mysql_fetch_array($ris)){ 
			
			$area_geografica          			 = htmlentities($riga['area_geografica']); //metto i spazi solo per un mio modo di fare, ed identificare alcune parti del codice ;)
			$dataora_inizio_chiamata   			 = htmlentities($riga['dataora_inizio_chiamata']);
			$data_unix							 = date("H:i d/m/Y",$dataora_inizio_chiamata); //riconverto il timestamp in data normale
			$numero_origine            			 = htmlentities($riga['numero_origine']);
			$numero_destinazione       			 = htmlentities($riga['numero_destinazione']);
			$nome_phone_shop          			 = htmlentities($riga['nome_phone_shop']);
			$importo_phone_shop			         = htmlentities($riga['importo_phone_shop']);
			$durata_connessione		             = htmlentities($riga['durata_connessione']);

			
				echo "<tr>
			<td bgcolor='#EFF5FB'><center>$area_geografica</center></td>
			<td bgcolor='#F2FBEF'><center>$data_unix</center></td>
			<td bgcolor='#F2FBEF'><center>$numero_origine</font></center></td>
			<td bgcolor='#EFF5FB'><center>$numero_destinazione</center></font></td>
			<td bgcolor='#F2FBEF'><center>$nome_phone_shop</center></td>
			<td bgcolor='#F2FBEF'><center>$importo_phone_shop &#8364</center></td>
			<td bgcolor='#EFF5FB'><center>$durata_connessione sec</center></td>
		</tr>";

            } 
        } 
    }  
	}
//..... 
?>

Ho fatto alcune modifiche commentate, ma per mi servirebbe un aiuto a terminare il codice per la suddivisione ulteriore con il contratto, hai idee ;)
 
Risolto ;) ma credo la tua funzione

PHP:
//.....
function times_ultimo_gg($m,$a){//$m: mese da 1 a 12, $a: anno numero di 4 cifre
    $m=(int)$m;
    $a=(int)$a;
    for($k=31; $k >=28; $k--){//31 30 29 28
        if(checkdate($m, $k, $a){//verifico per il mese/anno quale è l'ultimo gg, quello giusto da true
            return mktime(59,59,59,$m,$k,$a);
        }
    }
}

quando viene richiamata mi da errore sei sicuro che non ci siano errori?
 
ciao
hai ragione, errore di copy/paste ho dato 59 ore in un giorno, correggi in 23
PHP:
<?php
function times_ultimo_gg($m,$a){//$m: mese da 1 a 12, $a: anno numero di 4 cifre
    $m=(int)$m;
    $a=(int)$a;
    for($k=31; $k >=28; $k--){//31 30 29 28
        var_dump($k);echo "<br>";
		if(checkdate($m, $k, $a)){//verifico per il mese/anno quale è l'ultimo gg, quello giusto da true
			var_dump($k);echo "<br>";
            return mktime(23,59,59,$m,$k,$a);//CORREGGERE in 23
        }
    }
}
//**test
$mese=2;//febbraio
$anno= 2016;//bisetile
echo "ultimo giorni di febbraio 2016: ".date("d",times_ultimo_gg($mese,$anno))." =>".times_ultimo_gg($mese,$anno);
?>
 
ciao
al tuo precedente post volevo chiederti: quello che chiami $id ricavato da $id=$riga['num_contratto'] è un valore univoco?
perche se sì le due ricerche possono essere incompatibili nel senso che (es) cerci il contatratto 567 in febbraio 2013, ma se il contratto non è di febbraio non lo trovi, quindi bisogna suddividere la ricerca
o nell'intervallo di tempo
o per tal numero di contratto
 
Si valore univoco, infatti non ci sono problemi con la ricerca funziona perfettamente, ti volevo chiedere una cosa te conosci un modo di creare un submit stile link, mi spiego vorrei che cliccando sopra ad una parola faccia una ricerca, ci sono gia riuscito ma trasformando le parole in pulsanti submit, ma se prova ad usare i codici che ho trovato in giro niente :S
 
ciao
per il primo problema
vedo che hai messo la ricerca per l'id assime alla ricerca per intervallo di tempo, quindi conviene modificare la parte php facenedo un controllo (ti scrivo in pseudo codice, se riesci lo fai tu altrimenti poi ti do una mano:
Codice:
se post_tempo e pst_id vuoti
errore
se post_tempo non vuoto e post_id vuoto
query ricerca per intervallo di tempo
se post_tempo vuoto e post_id non vuoto
query ricerca per id
altimenti se untrambi pieni
qui puoi operare in tre modi
1) errore
2) dare la preminenza a una delle due ricerce
3) cercare quell'id nell'intervallo di tempo selezionato
prova a modificare la parte di ricerca

per il secondo: un problema => una discussione, apri una discussione apposita altrimenti diventa difficile trovare la soluzione (se c'è) anche per altri utenti interessati
 
Giustissimo, una cosa, tua funzione per il controllo dei mesi, funziona bene ora, ma mi restituisce anche due valori (int31)(int31) uno sotto all'altro, ti risulta anche a te ;)
 
ciao
togli o meglio commenta i due var_dump
PHP:
//.....
for($k=31; $k >=28; $k--){//31 30 29 28
        //var_dump($k);echo "<br>";
        if(checkdate($m, $k, $a)){//verifico per il mese/anno quale è l'ultimo gg, quello giusto da true
            //var_dump($k);echo "<br>";
            return mktime(23,59,59,$m,$k,$a);//CORREGGERE in 23
        }
//.....
e visto che ci siamo guardali: i var_dump(nome variabile o altro) sono uno strumento utilissimo per il dabag di uno script.
si potrebbe usare anche un semplice echo per vedere/verificare i risultati, ma il var_dump oltre al valore ti restituisce anche il tipo della variabile.
spesso un var_dump risolve problemi relativi ad errori che sembrano irrisolvibili perche nascono a monte dell'errore che ti da php.
in questo caso avendo verificato che i valori di $k erano come volevo, quindi l'errore veniva dopo, e mi sono accorto di aver messo 59 al posto di 23.
 
Borgo ho un altra domanda, ho aggiunto anche la somma della durata delle chiamate per mese così:

PHP:
<?php
include "voip/include/config.php"; //Connect to Database
include "voip/include/connect.php"; //Connect to Database
if(isset($_POST['cerca'])){ 
    if($_POST['mese']=="" || $_POST['anno']=="" || $_POST['contratto']==""){ 
        echo "<p style='font-family:arial;color:red;font-size:20px;'>";
		echo "non ha inserito il mese o l'anno o il contratto";
		echo "</p>"; 
        echo "<meta http-equiv='Refresh' content='3; URL=dett_traffic.php'>"; 
    }else{//mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] ) 
        //trasformo in timestamp 
        $da=mktime(0,0,0,(int)$_POST['mese'],1,(int)$_POST['anno']);//qui probabilmente devi provare se va bene 31 o 30 o 28 o 29 in funzione del mese 
        $a=mktime(59,59,59,(int)$_POST['mese'],31,(int)$_POST['anno']); 
		$chi=($_POST['contratto']);
		$nome_mese=($_POST['mese']);
		//$a=times_ultimo_gg($_POST['mese'],$_POST['anno']);//modifica
        $query="SELECT * FROM stat_traffic WHERE nome_phone_shop = '$chi' AND dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a ORDER BY dataora_inizio_chiamata DESC";//oppure usando BETWEN 
        //echo "$query<br />"; 
        $ris=mysql_query($query); 
        if(mysql_num_rows($ris)==0){ 
		echo "<p style='font-family:arial;color:red;font-size:20px;'>";
            echo "Il cliente";
			echo " $chi";
			echo " non ha effettuato traffico telefonico per il mese di";
include('../scripts/funzioni/funzione_nome_mese.php'); //da il nome al mese
			echo " $nmese";
			echo "</p>"; 
			echo "<meta http-equiv='Refresh' content='5; URL=dett_traffic.php'>";  //ritorna alla pagina di ricerca
        }else{ 
            //Creao una tabellazione dove inserisco i risultati ricavati
 				
				function secsToStr($secs) {  //Funzione per testualizzare i secondi
				if($secs>=86400){$giorni=floor($secs/86400);$secs=$secs%86400;$r=$giorni.' Giorn';if($giorni<>1){$r.='i ';};if($giorni=1){$r.='o ';}if($secs>0){$r.=', ';}}
				if($secs>=3600){$ore=floor($secs/3600);$secs=$secs%3600;$r.=$ore.' Or';if($ore>2){$r.='e ';};if($ore<=1){$r.='a ';}if($secs>0){$r.=', ';}}
				if($secs>=60){$minuti=floor($secs/60);$secs=$secs%60;$r.=$minuti.' Minut';if($minuti>2){$r.='i ';};if($minuti<=1){$r.='o ';}if($secs>0){$r.=', ';}}
				$r.=$secs.' Second';if($secs>2){$r.='i';};if($secs<=1){$r.='o';}
				return $r;
				}
				$result = mysql_query("SELECT SUM(durata_connessione) AS somma FROM stat_traffic WHERE nome_phone_shop = '$chi' AND dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a"); 
				$row = mysql_fetch_assoc($result); 
				$sum = $row['somma']; 
				$secs = $sum;
				$sum_2 = secsToStr($secs); //applico la funzione
			include('../scripts/funzioni/funzione_nome_mese.php'); // da il nome al mees
				echo "
				<br/>
				<table><tr>
			<td bgcolor='#EFF5FB'><center><font size='4'>Il/La Cliente <font color='green'>$chi</font> ha effettuato nel mese di <font color='green'>$nmese:</font> <font color='red'>$sum_2</font> di traffico telefonico</font></center></td>
			</table></tr>";

				echo '
<center><table width="1000" border="0" cellpadding="5" cellspacing="10">
	<tr>
		<th bgcolor="#CEECF5">Operatore</th>
		<th bgcolor="#CEECF5" width="150">Inizio Chiamata</th>
		<th bgcolor="#CEECF5">Numero Origine</th>
		<th bgcolor="#CEECF5">Numero Destinazione</th>
		<th bgcolor="#CEECF5">Codice</th>
		<th bgcolor="#CEECF5">Costo Chiamata</th>
		<th bgcolor="#CEECF5">Durata Connessione</th>
	</tr></center>';
	

            while($riga=mysql_fetch_array($ris)){ 
			
			$area_geografica          			 = htmlentities($riga['area_geografica']);
			$dataora_inizio_chiamata   			 = htmlentities($riga['dataora_inizio_chiamata']);
			$data_unix							 = date("H:i d/m/Y",$dataora_inizio_chiamata); //riconverto il timestamp in data normale
			$numero_origine            			 = htmlentities($riga['numero_origine']);
			$numero_destinazione       			 = htmlentities($riga['numero_destinazione']);
			$nome_phone_shop          			 = htmlentities($riga['nome_phone_shop']);
			$importo_phone_shop			         = htmlentities($riga['importo_phone_shop']);
			$durata_connessione		             = htmlentities($riga['durata_connessione']);


			
				echo "<tr>
			<td bgcolor='#EFF5FB'><center>$area_geografica</center></td>
			<td bgcolor='#F2FBEF'><center>$data_unix</center></td>
			<td bgcolor='#EFF5FB'><center>$numero_origine</font></center></td>
			<td bgcolor='#F2FBEF'><center>$numero_destinazione</center></font></td>
			<td bgcolor='#EFF5FB'><center>$nome_phone_shop</center></td>
			<td bgcolor='#F2FBEF'><center>$importo_phone_shop &#8364</center></td>
			<td bgcolor='#EFF5FB'><center>$durata_connessione sec</center></td>

		</tr>";				
                //ecc... per tutti i campi che vuoi visualizzare, con layuout da definire 
            } 
        } 
                //ecc..... 
    }  
	echo '</table>';
	echo '<br/>';
		footer();
		version();
}
//..... 
?>

Ma vorrei invece che fare una somma totale dividere in tempo verso tim - vodafone - h3g, dato che nel campo area geografica, mi dice appunto verso quale operatore si chiama (Italy Fixed=fissi; Italy mobile, Wind=wind;Italy mobile, H3G=tre; ecc) ho fatto qualche prova ma mi sballa tutto, hai qualche idea? Tipo 5 query rispettive per ogni operatore.
 
ciao
secondo me devi fare un'altra query e un'altra tabella di visualizzazione, cosi a naso senza pensarci mi viene in mente una query del tipo
PHP:
<?php
//.......
$query="SELECT SUM(durata_connessione) AS somma, area_geografica AS geo WHERE nome_phone_shop = '$chi' AND dataora_inizio_chiamata >= $da AND dataora_inizio_chiamata <= $a GROUP BY area_geografica";
$ris=mysql_query($query);
echo "<table><tr><th>operatore</th><th>tempo connessione</th></tr>";
while/$riga=mysql_fetch_array($ris)){
	echo "<tr><td>".$riga['geo']."</td><td>".$riga['somma']."</td></tr>";
}
echo "</table>";
//....
?>
provala poi se non funzia ci pensiamo meglio
 

Discussioni simili