Tabella dinamica

alankanz

Lupacchiotto
Membro dello Staff
MOD
18 Giu 2014
147
5
18
Roma
Volevo condividere con voi questo script che ho assemblato con tanta fatica.

Magari qualcuno me lo migliora pure.

PHP:
<?php
//recupero tutti i file .pdf dalla cartella 
$pdf = glob('./miacartella/*.pdf');

//annoto il numero complessivo
$num = count($pdf);

//Creo lo stile e l'inizio della tabella
echo  "<style type='text/css'>"
    . "tr.scuro {background: #C6E0B4;}"
    . "tr.chiaro {background: #E2EFDA;}"
    . "</style>"
    . "<table border=1>"
    . "<tr>"
    . "<th>Dato 1</th>"
    . "<th>Dato 2</th>"
    . "<th>Dato 3</th>"
	. "</tr>";

//setto le variabili che inizino a contare da 1
$c = 1;
$i = 1;

// creo i ciclo a partire da $c fino ad arrivare a $num (che è il numero dei file contenuti nella cartella)
while ($c <= $num) {
foreach($pdf as $f) {	

// mi prendo solo il nome del file scartando la path e l'estensione
	// PATH file
	$let = explode("/", $f);
	//ESTENSIONE file
	$lettera = explode(".", $let[5]);
	//Tabella con una riga chiara e una riga scura e dati 
    echo '<tr class="'.(($i %2 == 0)?'chiaro':'scuro').'">
        <td>' . $lettera[0] . '</td>
        <td>' .$c. '</td>
        <td>' . $c . '</td>
    </tr>';
	
//incremento $c e $i
  $c++;  
  $i++;
}
}

// Chiudo la tabella
echo "</table>";

?>

Spero vi sia utile!!

Miglioramenti sono ben accetti :o
 
PHP:
$table =<<<TABLE
<style type='text/css'>"
  table {border: 1px solid #000;}
  tr.scuro {background: #C6E0B4;}
  tr.chiaro {background: #E2EFDA;}
 </style>
<table summary="La tabella riporta 3 celle per riga con dentro dei dati.">
  <tr>
    <th>Dato 1</th>
    <th>Dato 2</th>
    <th>Dato 3</th>
  </tr>\n
TABLE;
echo $table;

$classe = 'scuro';
$c = 1;
foreach (glob("*.pdf") as $filename) {
  $table =<<<TABELLA
    <tr class="$classe">
      <td>$filename</td><td>$i</td><td>$i</td>
    </tr>\n
TABELLA;
  echo $table;
  if ($class=='scuro') $classe='chiaro'; else $classe='scuro';
  $c++;
}
echo '</table>';
Ammetto che non l'ho provata, ero tentato ma non mi andava di aprire un editor ( pigrizia ) però dovrebbe funzionare, con alcune modifiche di qualche involontario bug ma andrà.
Quello che non ho capito è a che servono tutti quei contatori, specialmente a che servono tre celle.
Poi una cosa: se fai così
PHP:
$let = explode("/", $f);
    //ESTENSIONE file
    $lettera = explode(".", $let[5]);
automaticamente assumi che il nome del file è alla chiave 5 dell'array $let. Ma se il path è diverso da quello che hai tu?
Se ha meno o più slash che succede?
Meglio allora un altro tipo di approccio.
glob() non ritorna necessariamente il file con il path appiccicato dietro e per togliere l'estensione bastava un substr()
PHP:
$nome = substr($nomefile, 0, -4); // 4 posizioni indietro, cioè .pdf ( quattro lettere )
Io non l'ho fatto ma si può implementare al volo.
 
Ti ringrazio purtroppo mi da errore

Parse error: syntax error, unexpected '<<' (T_SL) in G:\xampp\htdocs\tab\index.php on line 3
 

Discussioni simili