2011-12-13 27 views
0

我怎麼能輸出這樣替代多列用PHP

<table border="1"> 
    <tr> 
     <td> userid 1 </td> 
    </tr> 

    <tr> 
     <td> userid 2</td> <td>userid 3 </td> 
    </tr> 
    <tr> 
     <td> userid 4 </td> 
    </tr> 
    <tr> 
     <td> userid5 </td> <td>userid6 </td> 
    </tr> 
    <tr> 
     <td> userid7 </td> 
     <td>userid8 </td> 
     <td> userid9 </td> 
     <td>userid10</td> 
    </tr> 

</table> 
<br> 
<table border=1> 

我的表查詢的備用多列是這樣的:

$result = mysql_query("SELECT id,name FROM `tbl-record`") or die(mysql_error()); 

在行動典型的例子是這樣的:

http://www.cashcashpinoy.com 

一個表有五行,每行有一個備選的1x2x1x2x4列(TD)

回答

1

由於這是一個表,你可以使用colspan屬性上td元素,像這樣:

<table> 
    <tr> 
    <td colspan="4">Full width data.</td> 
    </tr> 

    <tr> 
    <td colspan="2">Half width data.</td> 
    <td colspan="2">Half width data.</td> 
    </tr> 

    <tr> 
    <td colspan="1">Quarter width data.</td> 
    <td colspan="1">Quarter width data.</td> 
    <td colspan="1">Quarter width data.</td> 
    <td colspan="1">Quarter width data.</td> 
    </tr> 
</table> 

您可以用任何數量的列做到這一點。

如果您想動態分配多個列,您需要有一定數量的結果來提供一致性,您可以使用LIMIT以及查詢來做到這一點。

$results; // This is all of the results of your query 
$colOps = array(1,2,4); // Different colspan values 
$numCols = 4; // Maximum columns to allow per line 

echo '<table border="1">'; 
while(count($results) > 0) { 
    $ind = mt_rand(0, 2); // Generate a random index number 
    if(count($results) >= $colOps[$ind]) { 
    echo '<tr>'; 
    for($i = 0; $i < $cols; $i++) 
     echo '<td colspan="'.$colOps[$ind].'">'.array_shift($results).'</td>'; 
    echo '</tr>'; 
    } 
} 
echo '</table>'; 

請注意,這是未經測試的,可能需要一些修改才能正常工作。

+0

對於一個項目,這是我得到的唯一一個'echo'

'; \t的foreach(array_chunk($ M,1)$行) \t { \t \t回聲'; \t foreach($ row as $ value) \t { \t echo'​​'.htmlentities($ value)'。'; \t} \t \t echo''; \t \t \t \t } \t回聲
';'如何可以爲每個行(TR)1x2x1x2x4列(TD)執行此操作。比如對於tr1 theres 1td,對於tr2 theres 2td等等? –