Tabella HTML e richiamo della funzione

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
PHP:
<?php
//la classe per il paging
class Paging {
    private $totPag; //Totale Pagine nella tabella
    private $pagCorr; //Pagina corrente
    private $totRighe; //Totale righe nella tabella
    private $righePerPagina; //Numero di righe per pagina da ottenere

    //Facilita l'accesso all'array dell'intervallo
    const kIntervalloInizio='inizio';
    const kIntervalloLunghezza='lunghezza';

    // Il costruttore chiede quale sia la pagina corrente, il totale delle
    // righe in tabella e quante righe per pagina interessano
    public function __construct($pagCorr,$totRighe,$righePerPagina) {
        $this->pagCorr=$pagCorr;
        $this->totRighe=$totRighe;
        $this->righePerPagina=$righePerPagina;
        $this->totPag=$this->contaPagine($totRighe, $righePerPagina);
    }

    // Consente di modificare la pagina corrente con un'altra dopo
    // l'esecuzione del construct
    public function vaiAPagina($pagina){
        if($pagina==self::kUltimaPagina)
            $this->pagCorr=$this->totPag;
        elseif(is_numeric($pagina) and $pagina>1 and $pagina<$this->totPag)
            $this->pagCorr=$pagina;
        else
            $this->pagCorr=1;
    }

    //Indica in quante pagine viene divisa la tabella
    public function contaPagine($totRighe, $righePerPagina) {
        return ceil($totRighe / $righePerPagina);
    }

    //Restituisce un array indicante la posizione del primo record e quante
    //righe occorre scorrere
    public function dammiIntervallo() {
        return array(
            self::kIntervalloInizio => ($this->pagCorr-1) * $this->righePerPagina,
            self::kIntervalloLunghezza => $this->righePerPagina
        );
    }

    //Ritorna il numero per la prossima pagina
    public function prossimaPagina(){
        if($this->totPag==0)
                return 1;
        return ($this->pagCorr>=$this->totPag)?$this->totPag:$this->pagCorr+1;
    }

    //Ritorna il numero per la pagina precedente
    public function precedentePagina(){
        return ($this->pagCorr<=1)?1:$this->pagCorr-1;
    }

}

//PREPARA L'OGGETTO PAGING E LO RITORNA
function CostruisciOggettoPaging($sql) {
    if (!isset($_GET['p']))
        $pagCorr = 1;
    else
        $pagCorr=$_GET['p'];
    $res = mysql_query($sql) or die('Err3');
    $totRighe = mysql_num_rows($res);
    mysql_free_result($res);
    $righePerPagina = 10;
    return new Paging($pagCorr, $totRighe, $righePerPagina);
}
 
//REALIZZA LA TABELLA E LA RITORNA SOTTO FORMA DI STRINGA
function CostruisciTabella($p,$sql) {
    $inter=$p->dammiIntervallo();
    $res = mysql_query("$sql limit {$inter[Paging::kIntervalloInizio]},{$inter[Paging::kIntervalloLunghezza]}") or die('Err4');
    ob_start();
    //creazione della tabella
    echo <<<END
<table class="table" cellspacing="0" cellpadding="5" rules="all" border="0" style="border-color:#FFFF33;"border-width:0px;border-collapse:collapse;">
<tr>
        <td width="250px"><b><font color="red">Mittente</font></b></td>
        <td width="250px"><b><font color="red">Data</font></b></td>
</tr>
END;
    while ($row = mysql_fetch_assoc($res)) {
    $data_invio = $row['data_invio']; 

//convertiamo la data
function convertidata($data_invio)   
{   
$partedata = explode("-", $data_invio);    
$compleanno= $partedata [5]."/".$partedata [4]."/".$partedata [3]."/".$partedata [2]."/".$partedata [1]."/".$partedata [0];    
return $compleanno;  
} 
$new_date = convertidata($data_invio);

echo <<<END
<tr>
        <td width="250px">{$row['mittente']}</td>
        <td width="250px">$new_date</td>
</tr>
<tr>
<td width="500px">{$row['testo']}</td>
</tr>
</table>
END;
    }
    //Link di navigazione
    echo <<<END
   </table>
        <a href="{$_SERVER['PHP_SELF']}?p={$p->precedentePagina()}">Indietro</a> |
        <a href="{$_SERVER['PHP_SELF']}?p={$p->prossimaPagina()}">Avanti</a>
   

END;
     mysql_free_result($res);
     return ob_get_clean();
}

//connessione al database
include('../connect.php');

//estrazione dei giocatori
$sql="SELECT * FROM MESSAGGI_ricevuti WHERE destinatario = '$team' ORDER BY data_invio ASC";

$p = CostruisciOggettoPaging($sql);
$tabella_dati = CostruisciTabella($p,$sql);

mysql_close($conn);

echo $tabella_dati;
?>

Ciao a tutti ho 2 problemi con lo script che ho riportato sopra:

1-Creo una tabella con 2 righe:(2 celle larghezza 250) e (1 cella larghezza 500px)...il problema è che non mi vengono fuori due righe con la stessa lugnhezza,bensì le due celle "Mittente" e "Testo" assumono larghezza 500,mentre "Data invio" assuma la larghezza di 250.

2-Se devo estrarre un solo messaggio lo script non mi da errori,ma se ce ne sono più di uno mi dice che la ri-uso la funzione e mi da questo errore:

Fatal error: Cannot redeclare convertidata() (previously declared in /membri/beamanager/gioco/paginazioni/messaggi.php:91) in /membri/beamanager/gioco/paginazioni/messaggi.php on line 91

Ringrazio chi avrà la pazienza di aiutarmi!0:)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
così ad occhio e croce:
hai messo la definizione della funzione dentro un while, quindi ad ogno ciclo tenta di redifinirla, da cui Fatal error: Cannot redeclare .....
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sempre ad occhio e croce (è uno script lunghetto).
al posto di
<td width="500px">{$row['testo']}</td>
dato che prima hai due colonne prova a mettere

<td width="500px" colspan="2">{$row['testo']}</td>
 

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Grazie,ho letto e capito adesso la differenza tra colspan e rowspan!0:)

Un ultima cosa io devo convertire un datetime...

PHP:
$date = $row['data_invio'];
$data = date('d/m/Y h:i:s', strtotime("$date[0]-$date[1]-$date[2] $date[3]:$date[4]:$date[5]"));

$date equivale a una data estratta dal DB ad esempio:

2011-01-13 19:47:58

e me la dovrebbe convertire in

13-01-2011 19:47:58

Dove sbalgio?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se la data è nel formato 2011-01-13 19:47:58 e cioè americano e il tuo sistema
è a 64 bit (almeno così ho trovato nel manuale http://it.php.net/manual/en/function.strtotime.php) è sufficiente


PHP:
<?php
$date = $row['data_invio'];
$data = date('d/m/Y h:i:s',strtotime($date));
?>
se invece è a 32 da FALSE
però prima ti conviene fare una verifica

PHP:
<?php
$date = $row['data_invio'];
$da = strtotime($data);
if($da==FALSE){
	echo "la data NON è nel formato giusto";
}else{
	echo "la data è giusta e risulta $da";
}
?>
se ti da la data NON è nel formato giusto bisogna fare altre operazione (ci penso e poi ti so dire)

p.s.
le ore 19 le trasforma in 07
p.s. al p.s.
questo è uno dei difetti di nnn memorizzare le date in formato timestamp
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
dimenticavo
per avere le ore scritte giuste al posto di
$data = date('d/m/Y h:i:s',strtotime($date));
scrivi
$data = date('d/m/Y H:i:s',strtotime($date));
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
felino Esportare tabella HTML in PDF, quale libreria usare? Javascript 1
F [PHP] [HTML] Tabella cambia pagina responsive PHP 8
M [PHP] [HTML] Centrare in verticale un pulsante in una tabella PHP 3
D [HTML] Aiutino su costruzione tabella :) HTML e CSS 3
K [Javascript] [HTML] Invertire colori alternati in tabella Javascript 3
S [HTML] Tabella con intestazione verticale HTML e CSS 4
B [HTML] tabella al centro pagina HTML e CSS 3
R [HTML] Aggiungere una tabella a fianco di altre tabelle... HTML e CSS 6
D [HTML] Problema con Dreamweaver; 1) tabella con larghezza 100% 2) Immagine che si adatta a Div HTML e CSS 28
L intestazione di tabella HTML continua a ripetere per ogni riga della tabella PHP 5
M Caratteri HTML salvati nella tabella PHP 4
G Da file txt a tabella html PHP 11
9 caricare immagini in tabella html da cartella sul server tramite id database PHP 1
9 eliminare righe di una tabella con form html PHP 6
F Tabella HTML PHP 5
filippino Tabella dei colori HTML HTML e CSS 1
JackIlPazzo Come estrarre codice da tabella html? PHP 4
S tabella dinamica php html PHP 2
filippino tabella HTML: altezza cella fissa HTML e CSS 1
Z [VB.NET] Leggere pagina HTML ed estrarre dati da tabella .NET Framework 1
V Tabella html dinamica con php PHP 4
Marcolotto [HTML] Colore bordo tabella HTML e CSS 2
Monital tabella html con ciclo for annidato PHP 6
S Da form sotto forma di tabella html a mysql PHP 6
G rilevare il valore di una cella in una tabella html al click del mouse. Javascript 4
A Allineare due colonne in una tabella HTML PHP 6
L Creazione tabella Html con popolazione dati da file di testo (txt) Ajax 12
I Riga tabella HTML creata con cicli PHP e Query Sql che restituisca un campo se si clicca la Riga PHP 4
M listing dati da database a tabella html con php PHP 4
W Problemi con filtro tabella HTML Javascript 0
C Cambiare i colori alle celle di una tabella html in modo sequenziale Javascript 32
C Javascript completo di html per creare una tabella dove compare il saluto in base all'ora. Javascript 2
C Inserire Valori Da Un File Js In Una Tabella Html Javascript 19
Monital Modificare una funzione per creazione tabella html PHP 15
Monital script per modifica css con tabella colori html PHP 6
Athene Interazione tra il foreach e una tabella html PHP 12
E Trasferire i dati da una tabella html in un tabella PHP 2
P Compilare un modulo HTML da una tabella di access Programmazione 0
D Esportare una tabella html su excel PHP 5
M Come estarre da una tabella html i valori di una riga selezionata PHP 15
D Tabella html da query mysql a modo mio PHP 5
A tabella html in php PHP 1
B leggere dati da tabella html PHP 0
V Come trasformare correttamente una tabella HTML HTML e CSS 6
V BOX fatto con tabella HTML da trasformare in XHTML HTML e CSS 6
N Popolamento di una tabella html a 2 colonne da database Classic ASP 1
W Pagina HTML si IE (Prb. tabella) HTML e CSS 9
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
S da casella di testo a campo tabella Database 0

Discussioni simili