-1

以下の例では、6 つのランダムな行を取得しており、生成された各行に変数 (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>
4

4 に答える 4

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");
于 2013-01-11T20:57:45.480 に答える
1

njkが非常にうまく要約されているので、関数を使用すべきではないという事実にもかかわらずmysql_、最初の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を超えるとどうなるかを考える必要があります。

于 2013-01-11T20:57:57.663 に答える
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++;
}
于 2013-01-11T21:04:21.983 に答える
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++;
}
于 2013-01-11T21:02:54.437 に答える