Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    151

    Formattazione grafica tabella in base alla data

    Ciao a tutti,
    su una pagina estrapolo i dati (scadenze) da un database mysql e li visualizzo così:

    29-09-2011 | Pratica codice | Cliente | Note|
    29-09-2011 | Pratica codice | Cliente | Note|
    30-09-2011 | Pratica codice | Cliente | Note|
    02-10-2011 | Pratica codice | Cliente | Note|
    02-10-2011 | Pratica codice | Cliente | Note|
    05-10-2011 | Pratica codice | Cliente | Note|
    05-10-2011 | Pratica codice | Cliente | Note|
    07-10-2011 | Pratica codice | Cliente | Note|

    Vorreidividere con una linea, oppure colorando diversamente le righe per data e cioè così:

    29-09-2011 | Pratica codice | Cliente | Note|
    29-09-2011 | Pratica codice | Cliente | Note|
    --------------------------------------------
    30-09-2011 | Pratica codice | Cliente | Note|
    --------------------------------------------
    02-10-2011 | Pratica codice | Cliente | Note|
    02-10-2011 | Pratica codice | Cliente | Note|
    --------------------------------------------
    05-10-2011 | Pratica codice | Cliente | Note|
    05-10-2011 | Pratica codice | Cliente | Note|
    --------------------------------------------
    07-10-2011 | Pratica codice | Cliente | Note|

    Come fareste voi?

    Grazie come sempre per il vostro aiuto.

  2. #2
    prova a creare una tabella (utilizzando html) mentre ti leggi i dati da mysql..

    presumo tu sia all'interno di un ciclo mentre scorri il result-set della query, e fai una "echo" dei campi che ti interessano.
    Ti posizioni qui dentro e oltre a sparare a video questi campi, aggiungi anche il codice html per creare le righe della tabella:

    Codice PHP:
    $table "<table><tr>";
    for (
    $i=0;$i<count(mysql_fetch_row($row);$i++){
      
    $table .= "<td>".$row[0]."</td>";
    }
    $table .= "</tr><table>"
    qui puoi giocare con la struttura della tabella, dandogli dei colori, magari all'interno del ciclo ti salvi la data e la confronti con quella che leggi, poi a rottura di condizione cambi lo sfondo della riga

    non so se ho reso l'idea, ma con una struttura di questo tipo dovresti farcela
    Ristoranti Roma
    http://www.ristorantiromaristo.it
    info@ristorantiromaristo.it

  3. #3
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    credo che tu voglia anche raggruppare per date diverse vero?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    151
    Si,
    i dati sono all'interno di una tabella come hai riportato tu.
    Attualmente la tabella è formattata che cambia colore ogni riga.

    Ma cambiare colore ogni riga non è il mio problema.

    Il mio problema è cambiarecolore ogni volta che cambia la data...

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    151
    Originariamente inviato da homerbit
    credo che tu voglia anche raggruppare per date diverse vero?
    Esatto.

  6. #6
    Codice PHP:
    <?php
    $query 
    = ...;
    $previousDate null;
    $i 0;
    while ( list(
    $date,$code,$customer,$notes) = mysql_fetch_row($query) ) {
    if ( 
    $previousDate != $date ) {
    $previousDate $date;
    ++
    $i;
    }
    print 
    '<tr class="'.($i%2==0?'even':'odd').'"><td>$date</td><td>$code</td><td>$customer</td><td>$notes</td></tr>';
    }
    ?>

  7. #7
    dimenticavo... ovviamente si presuppone che tu abbia già fatto ordinare i risultati per data nella query... altrimenti devi scorrere tutti i risultati della query e salvare ciascun resultset in un array associativo con la data come chiave e un array di array (=i risultati) come valore

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    151
    Certo,
    la query è ordinata con un bell'ORDER by Data, ma non riesco ad applicare il tuo codice...

    ecco la mia struttura della tabella:

    Codice PHP:
      $sql  ".....................ORDER BY Data";
          
    $rs mysql_query($sql$cid);
        if (
    mysql_error()) { print "Database Error: $sql " mysql_error(); }
              
    // Preparo la tabella per accogliere i dati
                  
    echo  "<table width=\"100%\" cellspacing=\"4\" cellpadding=\"2\" bordercolordark=\"#FFFFFF\" class=\"piccolo\">"
     
    while (
    $valori mysql_fetch_array ($rs)){ 

    $a1 $valori "date_format(Data, '%d-%m-%Y')"]; 
    $a2 $valori "Descrizione"]; 
    $a3 $valori "Codice"]; 
    $a4 $valori "cliente_nome"]; 
    $a5 $valori "controparte_nome"];

    $a4 substr($a4015); 
    $a5 substr($a5015); 
    print 
    '<tr class="'.($i%2==0?'even':'odd').'"><td width=\"10%\" align=\"left\"><font class=medio>$a1</font></td>
      <td width=\"10%\" align=\"left\"><font class=medio>[b]$a3[/b]</font></td>
      <td width=\"20%\" align=\"left\"><font class=medio>[b]$a4[/b]</font></td>
      <td width=\"20%\" align=\"left\"><font class=medio>[b]$a5[/b]</font></td>
      <td width=\"40%\" align=\"left\"><font class=medio>$a2</font></td></tr>'
    ;

    }
    echo  
    "</table>";
    mysql_free_result ($rs
    or die ( 
    "Non riesco a liberare le risorse"); 
    mysql_close (); 
    Grazie comunque.

  9. #9
    scusa ma il mio codice è molto elementare e meno che non stai copiando a muzzo da cose già fatte

    invece che mysql_fetch_array ho usato list e mysql_fetch_row, non vedo cos'altro c'è di diverso tranne ovviamente le parti per raggruppare per colore. Devi solamente tenere traccia della data del record precedente, se è differente viene incrementato $i in maniera tale che quando successivamente vai a calcolare il resto della divisione con 2 ottieni il cambio di colore

    e se vuoi aggiungere una riga vuota

    if ( $previousDate != $date ) {
    if ( $previousDate != null ) {
    print '<tr><td colspan="4">sono una riga vuota</td></tr>';
    }
    $previousDate = $date;
    ++$i;
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    151
    Non ho capito questa:

    Codice PHP:
    '.($i%2==0?'even':'odd').' 
    Ma devo creare anche una classe css per even e odd che dovrebbero essere i due colori da alternare?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.