在我的下面的例子中,我将拉出六个随机行,并希望为每个生成的行分配一个变量(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>';
}
所以输出结果为:
<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>
答案 0 :(得分:1)
将演示移到循环之外
$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++;
}
但如果您的结果超过6,则会失败。 演示ID可以包含字母表中的所有字母:
$demo_id = range("a","z");
答案 1 :(得分: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时会发生什么。
答案 2 :(得分: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++;
}
答案 3 :(得分: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++;
}