[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод данных из бд
tranger
Здравстуйте, помогите пожайста, нужно вывести данные из бд в таблицу.
Выводить нужно таким образом:
<tr>
<td>
1</td>
<td>
2</td>
<td>
3</td>
<td>
4</td>
</tr>
<tr>
<td>
5</td>
<td>
6</td>
<td>
7</td>
<td>
8</td>
</tr>


т.е. чтоб в горизонтальный столбик входило 4 записи, на php это выглядит примерно так:
  echo '<tr>';
for($i = 0; $i < mysql_num_rows($sql); $i++) {
$r = mysql_fetch_array($sql);
$name = $r['name'];
echo '<td>';
echo $name;
echo '</td>';
}
echo '</tr>';


но таким образом всё будет выводится в один длинный горизонтальный столбик, а нужно чтоб после вывода 4х записей остальные записи выводились в следующий горизонтальный столбик

<tr>
<td>
1</td>
<td>
2</td>
<td>
3</td>
<td>
4</td>
</tr>
<tr>
<td>
5</td>
<td>
6</td>
<td>
7</td>
<td>
8</td>
</tr>


Как это сделать?
Aeq
горизонтальный столбик звучит эпично laugh.gif
а ты пробовал завернуть это все в <table></table> ?
tranger
echo '<table>
echo '
<tr>';
for($i = 0; $i < mysql_num_rows($sql); $i++) {
$r = mysql_fetch_array($sql);
$name = $r['
name'];
echo '
<td>';
echo $name;
echo '
</td>';
}
echo '
</tr>';
echo '
</table>


Если делать таким образом, то выводится будет так:
user posted image

А нужно выводить так:
user posted image
Aeq
Цитата (tranger @ 7.11.2013 - 21:08)
echo '<table>
echo '
<tr>';
for($i = 0; $i < mysql_num_rows($sql); $i++) {
$r = mysql_fetch_array($sql);
$name = $r['
name'];
echo '
<td>';
echo $name;
echo '
</td>';
}
echo '
</tr>';
echo '
</table>


Если делать таким образом, то выводится будет так:
user posted image

А нужно выводить так:
user posted image

<tr> и </tr> внутрь цикла засунь
Aeq
кароче, должно получиться
<table>
<tr>
<td>
1</td>
<td>
2</td>
<td>
3</td>
<td>
4</td>
</tr>
<tr>
<td>
5</td>
<td>
6</td>
<td>
7</td>
<td>
8</td>
</tr>
</table>

если получается
<table>
<tr>
<td>
1</td>
<td>
2</td>
<td>
3</td>
<td>
4</td>
<td>
5</td>
<td>
6</td>
<td>
7</td>
<td>
8</td>
</tr>
</table>

или
<tr>
<td>
1</td>
<td>
2</td>
<td>
3</td>
<td>
4</td>
</tr>
<tr>
<td>
5</td>
<td>
6</td>
<td>
7</td>
<td>
8</td>
</tr>

то не катит, и будет в строку.

надо обяз. внутри <table> и по <tr> на каждую строку.
tranger
123456, спасибо
tranger
Немного начало получаться, но...
Имеем функцию:
function drawTableH($data, $columns=10, $tabs=0)
{
$tbl = null;

if($tabs === false)
{
$tr = $td = null;
}
else
{
$tr = "\n".str_repeat("\t", $tabs);
$td = $tr."\t";
}
for($i = 0, $n = 1, $d = ceil(count($data) / $columns) * $columns; $i < $d; $i++, $n++)
{
if($n == 1)
$tbl .= $tr.'<tr>';

$tbl .= $td.'<td style="width: 25%;">'.(isset($data[$i]) ? $data[$i] : '<td style="width: 25%;"></td>').'</td>';

if($n == $columns)
{
$n = 0;
$tbl .= $tr.'</tr>';
}
}

if($tabs !== false)
$tbl .= "\n";
return $tbl;
}


Выводим:
$data = array();
$query = mysql_query("SELECT * FROM сategory");
while($row = mysql_fetch_row($query))
{
$data = array_merge($data, $row);
}
mysql_free_result($query);

$content .= '<table border="1">'.drawTableH($data, 4, 0).'</table>';


Таким образом выводятся все данные из таблицы, а мне надо вывести данные из определённых колонок:
$content .= '<td style="width: 25%;">';
$content .= '<a href="/index.php?category_id='.$id.'"><img src="..'.$image.'" title="'.$name.'" alt="'.$name.'"></a>';
$content .= '<br>';
$content .= '<a href="/index.php?category_id='.$id.'">'.$name.'</a>';
$content .= '<br>';
$content .= '</td>';
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.