【问题标题】:php random cells inside a table表格内的php随机单元格
【发布时间】:2011-10-12 16:04:50
【问题描述】:

我有这段代码用于从 mysql 打印多列表

$k="<table width='100%' border='0' cellpadding='5'><tr>"; 
$h=mysql_query("select * from news order by id desc limit 0,12");
$col=0;
while($row=mysql_fetch_assoc($h)){
    $col++; 
    $k .="
    <td>
    Text here
    </td>
    "; 
    if($col==3){
        $k .="</tr><tr>";
        $col=0;    
    }  
}
$k .="</tr></table>";
echo $k;

我想在此表中添加一个随机单元格,例如广告感知代码,并且我希望广告感知代码每列显示一次。

输出应该是这样的

<table border="1" width="100%">
    <tr>
        <td>Title :$row[name]</td>
        <td>ADV Code1</td>
        <td>Title :$row[name]</td>
    </tr>
    <tr>
        <td>ADV Code2</td>
        <td>Title :$row[name]</td>
        <td>Title :$row[name]</td>
    </tr>
    <tr>
        <td>Title :$row[name]</td>
        <td>Title :$row[name]</td>
        <td>ADV Code3</td>
    </tr>
    <tr>
        <td>ADV Code4</td>
        <td>Title :$row[name]</td>
        <td>Title :$row[name]</td>
    </tr>
</table>

我该怎么做?

问候 松树

【问题讨论】:

    标签: php mysql html html-table


    【解决方案1】:

    使用 rand(0,2) 会给你一个介于 0 和 2 之间的随机数。每当有新行时,你就会创建一个随机数,比如

    $next_ad_col = rand(0,2);
    

    既然你在计算$col中的列,你可以去

    if($col == $next_ad_col) {
      // Add ad
    } else {
      $k .="<td>Text here</td>";
    }
    

    然后,如果创建了一个新行(以及在循环之前),则分配一个新的随机数:

    if($col==3){
      $next_ad_col = rand(0,2);
      ..
    

    或者类似的东西。

    【讨论】:

    • 您的代码将每行打印更多广告,但我需要每行一个广告。
    • 不这么认为。你真的试过了吗?我们的想法是在每行之前创建一个介于 0 和 2 之间的数字,并将广告放在该列中。