|
|
|
| Возможно ли вообще вывести результат в два столбца?
<?php
// table content:
$i = 0;
if ( is_array( $this->users ) && count( $this->users ) > 0 ) {
foreach ( $this->users as $userIdx => $user) {
$class = "sectiontableentry" . ( 1 + ( $i % 2 ) ); // evenodd class
if ( $this->allow_profilelink ) {
$style = "style=\"cursor:hand;cursor:pointer;\"";
$style .= " id=\"cbU".$i."\"" ;
} else {
$style = "";
}
if ( $user->banned ) {
echo "\t\t<tr class=\"$class\"><td colspan=\"".$colsNbr."\"><span class=\"error\" style=\"color:red;\">"._UE_BANNEDUSER." ("._UE_VISIBLE_ONLY_MODERATOR.") :</span></td></tr>\n";
}
echo "\t\t<tr class=\"$class\" ".$style.">\n";
foreach ( array_keys( $this->columns ) as $colIdx ) {
echo "\t\t\t<td valign=\"top\" class=\"cbUserListCol" . $colIdx . "\">" . $this->_getUserListCell( $this->tableContent[$userIdx][$colIdx] ) . "\t\t\t</td>\n";
}
echo "\t\t</tr>\n";
$i++;
}
} else {
echo "\t\t<tr class=\"sectiontableentry1\"><td colspan=\"".$colsNbr."\">"._UE_NO_USERS_IN_LIST."</td></tr>\n";
}
?> | |
|
|
|
|
|
|
|
для: bohanostra
(01.10.2010 в 07:41)
| | Возможно, и даже непосредственно при выводе результата запроса, без всякого промежуточного массива. Ну а массив тем более. | |
|
|
|
|
|
|
|
для: sim5
(01.10.2010 в 07:48)
| | Так, как это сделать???? | |
|
|
|
|
|
|
|
для: bohanostra
(01.10.2010 в 07:58)
| | Подходов может быть несколько, все завист от того что за данные и во что их разместить. Например, это фрагметны текста (скажем так параграфы), разбиваем общее число их на 2, и начинаем последовательно выводить, при этом первая часть будет выводится в один элемент DIV, вторая во второй, ну а все остальное это уже CSS.
Ну а вывод в таблицу так вообще какие проблемы? Если не важно расположение выводимого (слева следующее или снизу предыдущего), то вообще просто. | |
|
|
|
|
|
|
|
для: sim5
(01.10.2010 в 08:07)
| | "Ну а вывод в таблицу так вообще какие проблемы? Если не важно расположение выводимого (слева следующее или снизу предыдущего), то вообще просто."
Расположение не важно...
КАК?
Дайте ответ! С меня пиво =) | |
|
|
|
|
|
|
|
для: bohanostra
(01.10.2010 в 08:21)
| | Вы что не знаете как устроена html таблица? Выводите в цикле по два элемента ее ячейки (TD) с помещением в них извлеченного из базы, и обрамленных тегами строки таблицы (TR), вот и получится у вас таблица в две колонки. | |
|
|
|
|
|
|
|
для: sim5
(01.10.2010 в 08:51)
| | ну не получается! где я должен поставить теги? | |
|
|
|
|
|
|
|
для: bohanostra
(01.10.2010 в 08:57)
| | Там где им положено быть:
<table>
в цикле
<tr>
<td>Данные из запроса</td>
<td>Данные из запроса</td>
</tr>
<tr>
<td>Данные из запроса</td>
<td>Данные из запроса</td>
</tr>
<tr>
<td>Данные из запроса</td>
<td>Данные из запроса</td>
</tr>
.... и т.д. до окончания цикла
</table>
PS. Неужели сам код таблицы не подсказывает вам, что после каждых двух итераций цикла нужно закрывать и открывать тег строки таблицы, а при последней итерации только закрыть? При этом первый открывающий тег таблицы вывести вне цикла. Вот у вас и разметиться все (содержимое каждой строки запроса) в две колонки. | |
|
|
|
|
|
|
|
для: sim5
(01.10.2010 в 09:03)
| | Мы видимо не понимаем друг друга. То о чем вы пишите, я делал.
Запрос у меня один: echo "\t\t\t<td valign=\"top\" class=\"cbUserListCol" . $colIdx . "\">" . $this->_getUserListCell( $this->tableContent[$userIdx][$colIdx] ) . "\t\t\t</td>\n";
и если я его выведу в еще один столбец, он у меня будет дублироватся:
<td></td>1 <td></td> <td></td>1<td></td>
<td></td>2<td></td> <td></td>2<td></td>
<td></td>3 <td></td> <td></td>3<td></td>
<td></td>4 <td></td> <td></td>4<td></td>
<td></td>5<td></td> <td></td>5<td></td>
<td></td>6 <td></td> <td></td>6<td></td>
А мне надо один единственный запрос разбить на два столбца, без повторений:
Первый столбец Второй
1 2
3 4
5 6 | |
|
|
|
|
|
|
|
для: bohanostra
(02.10.2010 в 08:19)
| | Вы думаете я провидец, и знаю чего у вас там в результате запроса, и что надо разбить на два столбца? Запрос может вернуть все лишь одну строку записи, а может N-ое их количество. Nn записей результата запроса, это тоже самое, что и массив:
<?
$a = array(1,2,3,4,5,6,7,8);
echo "<table><tr>";
for($i=0; $i<count($a); $i++) {
echo "<td>" . $a[$i] . "</td>";
echo $i%2 ? ($i+1 == count($a) ? "</tr>" : "</tr><tr>") : null;
}
echo "</table>";
|
Что в вашем случае разбить.... | |
|
|
|
|
|
|
|
для: sim5
(02.10.2010 в 08:46)
| | То ли лыжи не едут, то ли я ебанутый! от 1 до 8 я сам считать умею! cbUserListCol на два столбца! ВОПРОС ПОНЯТЕН????????????? | |
|
|
|
|
|
|
|
для: bohanostra
(04.10.2010 в 00:32)
| | Насчет первого не знаю, ничего определенного сказать не могу. То, что можете считать радует, но класс никак на два не делится, а чего вы там пытаетесь разделить, нет, не понятно, пора бы уже родить слово конкретное.
Одна строка результата выборки, это тоже масссив - считать умеете, делить умеете, разбивайте, вставляйте. | |
|
|
|
|
|
|
|
для: sim5
(02.10.2010 в 08:46)
| | а как разбить в таком порядке
1 5
2 6
3 7
4 8 | |
|
|
|
|
|
|
|
для: gurza
(10.12.2011 в 19:10)
| | неужели нет идей | |
|
|
|
|
|
|
|
для: gurza
(10.12.2011 в 19:10)
| | Чтобы разбить данные в таком порядке, вам предварительно нужно сохранить данные в массив, затем вычисилить, какая позиция будет соответствовать точке 5 и после этого выводить в цикле данные $i и $i + 5 в одной строке. | |
|
|
|
|
|
|
|
для: cheops
(11.12.2011 в 16:38)
| | а готового примерчика нет | |
|
|
|
|
|
|
|
|
для: cheops
(11.12.2011 в 19:32)
| | спасибо за помошь все получилось | |
|
|
|