2014-11-22 3 views
1

Я хочу отображать данные извлечения в 1 таблице. Но мне нужна строка таблицы, чтобы быть ограничение на 10, а затем передать в другую колонкуОтображение данных из базы данных по вертикали в одной таблице

Примера вывод:

data1 data11 
data2 data12 
data3 data13 
data4 data14 
data5 data15 
data6 data16 
data7 data17 
data8 data18 
data9 data19 
data10 data20 
+0

Вам нужно сделать это в таблице? было бы проще использовать div и css. – Sean

+0

Я думаю, вы могли бы это сделать, используя 'ul' и' li', установив фиксированную высоту на ul и фиксированную ширину на li. –

+0

Можете ли вы привести мне пример? – rapidoodle

ответ

1

Вместо того, чтобы использовать таблицу, которая является немного более сложным, чтобы получить нужный формат, я бы рекомендовал использовать div S, что вы можете стиль как стол

<style> 
    // create a column class with a width and float to the left 
    .column {width:100px;float:left;} 
</style>"; 

<?php 
// open/create 1st column 
echo "<div class='column'>\n"; 

// create a range for example 
$range = range(1,20); 

foreach($range as $r){ 

    // after 10 records, close the last column and open/create a new column 
    if($r!=1 && $r%10==1){echo "</div>\n<div class='column'>\n";} 

    // echo your data in a 'cell' 
    echo "<div class='cell'>data{$r}</div>\n"; 
} 

// close last column 
echo "</div>"; 
?> 
+0

im используя mpdf, поэтому использование float: left ограничено – rapidoodle

+0

оно может быть ограничено, но согласно [docs] (http://mpdf1.com/manual/index .php? tid = 385) поддерживается, даже если только «частично», поэтому не уверен, почему это будет проблемой. – Sean

1

Вы можете создать массив данных, используя переменные переменные довольно легко, я думаю так:

$i=0; 
$j=0; 
while($result=fetch_result()) 
{ 
    $colVar=''; 
    for($depth=0;$depth<=$j;$depth++) 
    { 
     $colVar.='['.$i.']'; 
    } 
    $outputArray{$colVar}=$result; 
    $i++; 
    if($i>9) 
    { 
     $j++; 
     $i=0; 
    } 
} 

Это создаст массив с индексами 0-9 для первых десяти строк, а затем добавит к ним еще одно измерение для каждых десяти строк.

Если у вас есть Тири один строк в результате данные будут выглядеть следующим образом:

$outputArray[0]=data1; 
$outputArray[0][0]=data11; 
$outputArray[0][0][0]=data21; 
$outputArray[0][0][0][0]=data31; 
$outputArray[1]=data2; 
$outputArray[1][1]=data12; 
$outputArray[1][1][1]=data22; 
... 
... 
$outputArray[9]=data10; 
$outputArray[9][9]=data20; 
$outputArray[9][9][9]=data30; 

Вы можете создать таблицу аккуратно из данных, основанных на глубине массива - то есть, если это одиночный массив, создайте один столбец, если он два, сделайте два столбца и так далее.

2

Если вы хотите использовать таблицы:

<?php 

//assuming $data is an array which already contains your data 
$data = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); 

$rowsPerColumn = 10; 

$columns = ceil(count($data)/$rowsPerColumn); 

echo '<table>'; 

for ($r = 0; $r < $rowsPerColumn; $r++) 
{ 
    echo '<tr>'; 
    for ($c = 0; $c < $columns; $c++) 
    { 
     $cell = ($c * $rowsPerColumn) + $r; 
     echo '<td>' . (isset($data[$cell]) ? $data[$cell] : '&nbsp;') . '</td>'; 
    } 
    echo '</tr>'; 
} 
echo '</table>'; 
?> 
Смежные вопросы