我有一个包含 21 列的数据库表,我想显示所有列,所以我决定尝试垂直放置该表。
第一列是“标题”,后面的每一列显示数据库中的一行数据。
|--------|------|------|------|
| Title1 | row1 | row2 | row3 |
|--------|------|------|------|
| Title2 | row1 | row2 | row3 |
|--------|------|------|------|
等等
在 View 中
echo '<table>';
echo '<h2>Schemes</h2>';
foreach ($scheme->result() as $schemerow)
{
echo '<tr><td class="app"><strong>Award 1</td><td class="app">'.$schemerow->Description.'</td></tr>';
echo '<tr><td class="app"><strong>Award 2</td><td class="app">'.$schemerow->Description.'</td></tr>';
echo '<tr><td class="app"><strong>Location</td><td class="app">'.$schemerow->LocationName.'</td></tr>';
echo '<tr><td class="app"><strong>Day</td><td class="app">'.$schemerow->DayName.'</td></tr>';
等等
这给了我一个长表,每一行都在前一行的下面。
但我不知道如何将第二行放在第一行的右边等等?
最佳答案
我不熟悉 codeigniter 并且不知道是否可以使用 result()
函数实现以下功能。但是使用 result_array()
将结果提取到数组中,您应该能够使用以下方法转置该数组:
$transposedArray = array();
foreach ($scheme->result_array() as $schemerow)
{
foreach ($schemerow as $columnName => $value)
{
$transposedArray[$columnName][] = $value;
}
}
然后输出:
foreach ($transposedArray as $header => $values)
{
echo '<tr>';
echo "<td class='header'>{$header}</td>";
foreach ($values as $value)
{
echo "<td class='value'>{$value}</td>";
}
echo '</tr>';
}
或
// column1 in a row
echo '<tr>';
echo "<td class='header'>Readable Column Name1</td>";
foreach ($transposedArray['columnName1'] as $value)
{
echo "<td class='value'>{$value}</td>";
}
echo '</tr>';
// column2 in a row
echo '<tr>';
echo "<td class='header'>Readable Column Name2</td>";
foreach ($transposedArray['columnName1'] as $value)
{
echo "<td class='value'>{$value}</td>";
}
echo '</tr>';
// column3 in a row
...
关于php - Codeigniter - 如何将数据库结果垂直显示为列而不是行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36373806/