2013-01-11 55 views
-1

在我的示例中,我拉动了六个随机行,并希望为每个生成的行分配一个变量(a,b,c,d,e,f)。将变量分配到行

$result = mysql_query("SELECT * FROM cub_posts WHERE active = 'Y' ORDER BY rand() LIMIT 6") or die(mysql_error()); 
while ($row = mysql_fetch_array($result)) { 
    $demo_id = 'a, b, c, d, e, f'; 

    echo '<div class="span4 span-box"> 
    <div id="demo5'.$demo_id.'" class="ho-box demo5">'.$row['title'].'</div> 
    </div>'; 
} 

所以输出会是:你的循环

$demo_id = array('a', 'b', 'c', 'd', 'e', 'f'); 
$counter; 
while ($row = mysql_fetch_array($result)) { 
    echo '<div class="span4 span-box"> 
    <div id="demo5'.$demo_id[$counter].'" class="ho-box demo5">'.$row['title'].'</div> 
    </div>'; 
    $counter++; 
} 

之外

<div class="span4 span-box"> 
<div id="demo5a" class="ho-box demo5">Title</div> 
</div> 
<div class="span4 span-box"> 
<div id="demo5b" class="ho-box demo5">Title</div> 
</div> 
<div class="span4 span-box"> 
<div id="demo5c" class="ho-box demo5">Title</div> 
</div> 
<div class="span4 span-box"> 
<div id="demo5d" class="ho-box demo5">Title</div> 
</div> 
<div class="span4 span-box"> 
<div id="demo5e" class="ho-box demo5">Title</div> 
</div> 
<div class="span4 span-box"> 
<div id="demo5f" class="ho-box demo5">Title</div> 
</div> 
+5

[**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – Kermit

+1

什么问题? – j08691

+1

这就是说,甚至是什么问题? – crush

回答

1

ÿ你可以添加一个计数器。

$result = mysql_query("SELECT * FROM cub_posts WHERE active = 'Y' ORDER BY rand() LIMIT 6") or die(mysql_error()); 

$demo_id = array('a', 'b', 'c', 'd', 'e', 'f'); 

$i=0; 

while ($row = mysql_fetch_array($result)) { 

echo '<div class="span4 span-box"> 
<div id="demo5'.$demo_id[$i].'" class="ho-box demo5">'.$row['title'].'</div> 
</div>'; 

$i++; 
} 
1

移动演示但如果你有超过6个结果就会失败。 演示ID可以有字母,而不是所有的字母:

$demo_id = range("a","z"); 
1

尽管事实上,你不应该使用mysql_功能NJK已经非常精辟的总结,它不是很难拿出一些需要照顾第26行:

$demo_id = 'a'; 
while ($row = mysql_fetch_array($result)) { 
echo '<div class="span4 span-box">'; 
echo '<div id="demo5'.$demo_id.'" class="ho-box demo5">'.$row['title'].'</div>'; 
echo '</div>'; 
++$demo_id; 
} 

但你需要考虑一下会发生什么时,有超过26

+0

我相信它会成为'aa'。 –

0
$char = 97 
while ($row = mysql_fetch_array($result)) { 
    echo '<div class="span4 span-box">'; 
    echo '<div id="demo5'.chr($char).'" class="ho-box demo5">'.$row['title'].'</div>'; 
    echo '</div>'; 
    $char++; 
}