PHP цикл, строка таблицы - PullRequest
       26

PHP цикл, строка таблицы

2 голосов
/ 02 января 2011

Я пытаюсь перебрать базу данных и вывести данные в div, если в горизонтальном направлении есть 3 делителя, будет запускаться новый tr, пока он не достигнет еще 3 и т.д. *

[] [] []
[]
[] []

В настоящее время у меня это работает, когда он достигает 3, он начинает новую строку, но я не знаю, как я могу вывести новый tr только один раз? Так как каждый раз создается новая строка таблицы.

echo '<table><tr>';  

while ($result) 
{
    $i ++;
    if ($i&3)
    {
      echo '<td>
         <div>Row Data</div>
       </td>'; 
    }

    else
    {       
      echo '<tr>
        <td>
          <div>Row Data</div>
        </td></tr>';
   }
}  
echo '</tr></table>';

Переменная $result - это набор записей из моего SQL-запроса, все работает нормально. Я просто не знаю, как создать новую строку таблицы только один раз?

Ответы [ 5 ]

2 голосов
/ 02 января 2011

вам нужно сбросить переменную $ i на 1, когда вы нажмете 3 ...

$i = 0;
echo '<table><tr>';  

while ($result) 
{

    if ($i<=2)
    {
      echo '<td>
         <div>Row Data</div>
       </td>'; 
    }

    else
    {       
      echo '</tr><tr>';
      echo '<td><div>Row Data</div></td>'; 
      $i = 0;
   }
    $i ++;

}  
echo '</tr></table>';

Или как то так ...

1 голос
/ 02 января 2011

Я думаю, что в вашем коде есть небольшая ошибка в логике.Вы хотите разорвать линию, когда 3 <td> были добавлены.в настоящее время вы добавляете <td> в любом случае.Ваш счет больше не работает.

Также я не думаю, что побитовая операция - это то, что вам нужно.Если вы хотите 3 раза больше, вы не добьетесь этого с & 3.например, 3 $ 3 - это правда, а 6 и 3 - нет.7 и 3 это правда.11 и 3 это правда.тогда 15 и 3 верно.Вы можете либо сбросить $ i, либо использовать оператор%.

1 голос
/ 02 января 2011
echo '<table><tr>';
var $i = 0;
while ($result) {
   if ($i > 2) {
      echo '</tr><tr>';
      $i = 0;
   }
   echo '<td></td>';
   $i++;
}
echo '</tr></table>';
0 голосов
/ 03 января 2011
else
{       
  echo '<tr>
    <td>
      <div>Row Data</div>
    </td></tr>';
}

следует читать:

else
{       
  echo '</tr><tr>
    <td>
      <div>Row Data</div>
    </td>';
}
0 голосов
/ 02 января 2011

Или по модулю:


    if ($i % 3 == 0) {
      echo '</tr><tr>';
    } 

чтобы вам не пришлось сбрасывать $ i.

...