Как отобразить данные в несколько столбцов с помощью php? - PullRequest
1 голос
/ 04 августа 2011

Привет мне нужно построить таблицу из двух столбцов из таблицы MySQL.Вот что у меня сейчас:

<table>
<?php
$sql = "SELECT field1, field2 FROM tblX" 
$result = mysql_query($sql) or die("\nError Retrieving Records.");
while($row = mysql_fetch_array ($result, MYSQL_ASSOC)){?>
<tr>
   <td>
       <?=$row['field1']?> - <?=$row['field2']?>
   </td>
</tr>
<?php }?>
</table>

Это создаст одну таблицу столбцов примерно так:

1
2
3
4
5

Мне нужно, чтобы таблица была в двух столбцах, таких как:

1  4
2  5
3

Возможно ли это, если это так, как мне это сделать?

Ответы [ 4 ]

4 голосов
/ 04 августа 2011

Это должно делать то, что вы хотите, если вы настаиваете на столе.

Получите среднюю точку:

$mid = ceil(mysql_num_rows($result)/2);

Получить массив:

while( $row = mysql_fetch_row($result) ) {
    $list[] = $row; }

Вывести строки:

for( $i = 0; $i < $mid; $i++ ) {
    $itemOne = $list[$i];
    $itemTwo = $list[$i + $mid]; 
    // echo them in two tds.
}

Хотя я согласен с Марко. Вы также можете легко перечислить элементы от одного до $ mid в одном div, затем $ mid до конца в другом и использовать CSS для перемещения div-ов рядом Использование таблиц для форматирования - зло.

1 голос
/ 04 августа 2011

прочитать все значения в списке, получить половину значения, написать цикл, который показывает [i] и [i + halfvalue] вместе

0 голосов
/ 04 августа 2011

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

Вы должны расположить таблицу ДО того, как вы ее выведете, а затем, когда у вас все будет аккуратно, просто выведите код.

0 голосов
/ 04 августа 2011

Должно ли это быть в таблицах? Если у вас есть div и он установлен так, чтобы в высоте могли содержаться 3 элемента.

<div id="container">
  <div class="item">1</div>
  <div class="item">2</div> 
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
</div>

#container { height: 300px; }
.item { height: 100px; }

You can use some css floating to solve that combined with some padding and margin. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...