Originariamente inviato da pippuzzo80
con il count ottengo il numero da associare a colspan però l'immissione dei nomi avviene mediante un for con sintassi del tipo
for --------
{
<td colspan=$num>Nome </td>
<td> Nome[$i](ottenuto dal risultato della query)</td>
<td> Cognome[$i](come sopra)</td>
<td> Via[$i](come sopra) </td>
}
ma in questo modo mi sballa la tabella perche il colspan lo utilizza in ogni ciclo, ci vorrebbe qualcosa che mi permettesse di dichiararlo prima...
Veramente non capisco quello che vuoi fare. Già dovresti usare rowspan e non colspan per ottenere il risultato che vuoi.
Dimmi se l'esempio qui sotto non è assomiglia a quello che vuoi fare ?
codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?
$testo = <<<EOD
In pratica una tabella con due
colonne(nella prima solo la scritta nome)
e nella seconda tutti i possibili nomi.
Io vorrei raggruppare la prima colonna
utilizzando colspan,il problema è
il suguente: non so a priori quanti
nomi devo inserire in quanto questi
vengono presi da una query al database,
come posso fare per impostare la tabella in questo modo
EOD;
//------------ Array dei nomi - simula il risultato di una query sql
$nomi = explode(' ',$testo);
//------------ Con sql bisognerebbe usare mysql_num_rows
$numNomiPerTD = (int) (count($nomi ) / 2);
//------------ Altra prova
//$td1 = $nomi;
//$td2 = $nomi;
//$td1 = array_splice ($td1, 0, $numNomiPerTD);
//$td2 = array_splice ($td2,$numNomiPerTD);
//----------- Simula la lettura dei dati
$conta = 0;
while (list(,$nome) = each($nomi)) {
if ($conta < $numNomiPerTD) {
$td1[] = $nome;
} else {
$td2[] = $nome;
}
$conta++;
} //
$sTD1 = implode(' ',$td1);
$sTD2 = implode(' ',$td2);
?>
<table summary="" border="1">
<tr>
<td rowspan="2" valign="middle">Nomi</td>
<td><? print $sTD1 ?></td>
</tr>
<tr>
<td><? print $sTD2 ?></td>
</tr>
</table>
</body>
</html>