2015-07-19 4 views
0

PHP - это чуждый мне язык. Я пытаюсь вытащить некоторые поля из базы данных SQL WP. Содержимое выходит хорошо, но его много. Я хочу, чтобы как-то поставить его в HTML-карусельного или какой-слайдера, где данные должны быть отформатированный как это:Pagination PHP echoed Content

<holder1> 
    <data1></data1> 
    <data2></data2> 
    <data3></data3> 
</holder1> 
<holder2> 
    <data4></data4> 
    <data5></data5> 
    <data6></data6> 
</holder2> 

Я полагаю, я должен был бы поставить некоторые цикл для я < 4, делать, затем перерыв в holder2 ,

Текущий сценарий, который вторит данные =

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

echo "<div class='testimonials flexslider'><ul class='slides'><li class='testimonial flex-active-slide'><blockquote><p>" . $row['post_content'] . "</p><cite><span>" . $row['post_title'] . "</cite></span></blockquote></li></ul></div>"; } 

Я хотел бы сломаться после 3 <li> элементов каждый, в отдельный <div> или <article> все, что я нахожу подходящий в соответствии с каруселью я использую.

ответ

2

Вам нужна индексная переменная, которая эхо-кодирует начало обертки, когда она делится на 3, и конец обертки, когда он оставит остаток от 2 после деления на 3 (и в самом конце). Похоже, что этот код будет работать:

$index = 0; 
while($row = mysql_fetch_array($rs)) { 
    if ($index % 3 == 0) { 
     echo "<div class='testimonials flexslider'><ul class='slides'>"; 
    } 

    echo "<li class='testimonial flex-active-slide'><blockquote><p>" . $row['post_content'] . "</p><cite><span>" . $row['post_title'] . "</cite></span></blockquote></li>"; 

    if ($index % 3 == 2) { 
     echo "</ul></div>"; 
    } 
    $index++; 
} 
if ($index % 3 != 2) { 
    echo "</ul></div>"; 
} 

EDIT: немного объяснения уточнить математику. Предположим, у вас есть 10 результатов. Поскольку мы обычно отсчитываются от 0 в программировании, они могут быть пронумерованы от 0 до 9. Это сделает вашу структуру выглядеть следующим образом:

<holder> 
    <data0></data0> 
    <data1></data1> 
    <data2></data2> 
</holder> 
<holder> 
    <data3></data3> 
    <data4></data4> 
    <data5></data5> 
</holder> 
<holder> 
    <data6></data6> 
    <data7></data7> 
    <data8></data8> 
</holder> 
<holder> 
    <data9></data9> 
</holder> 

Вы видите, что нам нужно <holder> перед тем элементами 0, 3, 6 и 9 - все числа, которые делятся на 3. Математически это выражается с помощью функции remainder - число делится на 3, когда его остаток после деления на 3 равен нулю.

Кроме того, нам нужно </holder> после элементов 2, 5 и 8 - числа, которые после деления на 3 оставляющих остаток 2.

Мы должны заботиться о ситуации, когда последний блок не является полным; вот почему есть дополнительный блок кода, чтобы позаботиться о последних </holder>.

+0

Привет, я уверен, что ваш код будет работать, но вы можете помочь мне понять, почему мы играем с делением и остатками? Мне жаль, что я немного нуб по математике. – a4aLien

+1

Конечно, я обновил свой ответ соответственно. – Glorfindel

+0

Спасибо! Это помогло мне понять ясно. Теперь я смогу заменить номер 3 на мой выбор! Большое вам спасибо! :) – a4aLien