2011-10-12 69 views
1

我有这样的代码打印多列的表从MySQLPHP随机细胞

$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> 

我怎样才能做到这一点?

问候 松树的

回答

0

使用兰特(0,2),这会给你0和2之间的随机数每当有一个新行,创建一个随机数,象

$next_ad_col = rand(0,2); 

既然你是计数$山坳列,你可以去

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

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

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

或者类似的东西。

+0

您的代码将在每行打印更多广告,但我需要每行一个广告。 –

+0

不要这样想。你真的尝试过吗?我们的想法是在每行之前创建一个介于0和2之间的数字,并将该广告放置在该列中。 – Olaf