2016-06-27 7 views
0

クエリをフェッチするために使用したwhileループから取得された場合のコンテンツ。私は、配列の異なる出発点からのコンテンツを並べ替えるのは、インデックス5〜8の結果を言わせて、それが今、それがすべてのインデックス0から開始していると12foreachループ内のどのインデックスからループを開始するかを指定します。

<?php 
$i='0'; 
foreach($articulos as $articdos){ 
?> 
<div class="cajon4centro"> 
<div class=""> 
    <a href="efecto.php?libelula=noticias&artic=<?= $articdos['id']; ?>&gen=<?= $articdos['genero']; ?>&id=<?= $articdos['id'] ?>"> 
    <div class="c4img"> 
    <img src="img/chica/<?= $articdos['foto']; ?>" alt="" /> 
    <div class="titC4"> 
     <?= $articdos['titulo']; ?> 
    </div> 
    </div> 
    </a> 
</div> 
</div> 
<?php 
if ($i++ == 3) break; 
} ?> 

を4または9から0を無視する必要があり、 6番目の指標の後に開始したい...これはできますか?

+0

foreachループでは、特定のインデックスを使用していないため、最初から開始する必要があります。その周りの唯一の方法は、実際にループしたい結果だけを取得するために別のクエリを使用することです。ただし、カウンターを使用することで、カウンターをチェックして、カウンターが5-8かそれ以上であればアクションを実行することができます。 foreachループはすべての結果をループしますが、必要なカウントされた反復に対してのみ指定されたアクションを実行します。 –

+0

私は、db接続を最小限に抑えるために複数のクエリを使用したくありません。私はwhileループの提案を練習することができますが、複数のクエリを生成する必要があることは間違いですか? –

+0

これを達成するには複数の方法がありますが、あなたは単一のクエリを保持し、上記のようにカウンタを使用することができます。 foreachループを繰り返し実行すると、何もしませんが、カウンターがあなたが望む反復を示すのを待つ間に何もしません。 –

答えて

1

ここでは、このカウンタを使用して行うことができます方法は次のとおりです。文がfalseの場合、何のHTMLコードが実行されませんループまたは出力の際

<?php 
    $i = 0; 
    foreach($articulos as $articdos){ 
     if ($i >= 5 && $i <= 8) { 
?> 
    //Your HTML code here 
<?php 
     } // end if block 
     $++i; 
    } // end foreach loop 
?> 

を、あなたは何千ものレコードをループしている場合を除き何も行われていないループ中にかかる時間はごくわずかです。

番号のテストではなく、特定のデータが含まれている特定のレコードのみを検索する場合は、$articdosの中のデータをテストすることもできます。

+0

私はループを終了するためにbreakを使用するのではなく、ifで開始と終了を指定しました。大好きです。 ありがとうございますSgt AJ。 –

+0

大歓迎です。お役に立てて嬉しいです! –

関連する問題