【发布时间】:2014-01-20 10:59:22
【问题描述】:
我不确定我的标题是否正确,但我来了。我目前使用 CodeIgniter 开发应用程序。假设我有一个带有当前记录的数据库对象:
----------------------------------------------------------------
-- ID -- SurveyID -- UserID -- Value1 -- Value2 -- Marker --
----------------------------------------------------------------
-- 1 -- 1 -- 1 -- 5 -- 3 -- A --
-- 2 -- 1 -- 1 -- 5 -- 3 -- B --
-- 3 -- 1 -- 1 -- 5 -- 1 -- C --
-- 4 -- 1 -- 1 -- 5 -- 3 -- D --
-- 5 -- 1 -- 1 -- 5 -- 3 -- E --
-- 6 -- 2 -- 2 -- 10 -- 7 -- A --
-- 7 -- 2 -- 2 -- 10 -- 7 -- B --
-- 8 -- 2 -- 2 -- 10 -- 7 -- C --
-- 9 -- 2 -- 2 -- 10 -- 7 -- D --
-- 10 -- 2 -- 2 -- 10 -- 7 -- E --
-- 11 -- 2 -- 3 -- 12 -- 17 -- A --
-- 12 -- 2 -- 3 -- 12 -- 17 -- B --
-- 13 -- 2 -- 3 -- 12 -- 17 -- C --
-- 14 -- 2 -- 3 -- 12 -- 17 -- D --
-- 15 -- 2 -- 3 -- 12 -- 17 -- E --
----------------------------------------------------------------
我有一个从数据库生成表输出的代码:
$tableOutput = '
<table class="table table-bordered">
<tr>
<td>Survey ID = '.$user_data_list->SurveyID.'</td>
</tr>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
<td>E</td>
<td>A</td>
<td>B</td>
<td>C</td>
<td>D</td>
</tr>
';
foreach ($object as $user_data_list)
{
$tableOutput .= '<tr>'; // Row opening
$tableOutput .= '<td>'.$user_data_list->Value1.'</td>'; // Marker A value1
$tableOutput .= '<td>'.$user_data_list->Value1.'</td>'; // Marker B value1
$tableOutput .= '<td>'.$user_data_list->Value1.'</td>'; // Marker C value1
$tableOutput .= '<td>'.$user_data_list->Value1.'</td>'; // Marker D value1
$tableOutput .= '<td>'.$user_data_list->Value1.'</td>'; // Marker E value1
$tableOutput .= '<td>'.$user_data_list->Value2.'</td>'; // Marker A value2
$tableOutput .= '<td>'.$user_data_list->Value2.'</td>'; // Marker B value2
$tableOutput .= '<td>'.$user_data_list->Value2.'</td>'; // Marker C value2
$tableOutput .= '<td>'.$user_data_list->Value2.'</td>'; // Marker D value2
$tableOutput .= '<td>'.$user_data_list->Value2.'</td>'; // Marker E value2
$tableOutput .= '<tr>'; // Row closing
}
$tableOutput .= '</table>';
将生成:
----------------------------------------------------
-- Survey ID = 1 --
----------------------------------------------------
-- A -- B -- C -- D -- E -- A -- B -- C -- D -- E --
----------------------------------------------------
-- 5 -- 5 -- 5 -- 5 -- 5 -- 3 -- 3 -- 1 -- 3 -- 3 --
----------------------------------------------------
----------------------------------------------------
-- Survey ID = 2 --
----------------------------------------------------
-- A -- B -- C -- D -- E -- A -- B -- C -- D -- E --
----------------------------------------------------
--10 --10 --10 --10 --10 -- 7 -- 7 -- 7 -- 7 -- 7 --
----------------------------------------------------
--12 --12 --12 --12 --12 --17 --17 --17 --17 --17 --
----------------------------------------------------
上面的表格看起来不错,但调查 ID 2 有问题。输出必须在一行中,因为它是基于 UserID 2 和 3 的所有结果的结果。这是我的预期输出:
----------------------------------------------------
-- Survey ID = 1 --
----------------------------------------------------
-- A -- B -- C -- D -- E -- A -- B -- C -- D -- E --
----------------------------------------------------
-- 5 -- 5 -- 5 -- 5 -- 5 -- 3 -- 3 -- 1 -- 3 -- 3 --
----------------------------------------------------
----------------------------------------------------
-- Survey ID = 2 --
----------------------------------------------------
-- A -- B -- C -- D -- E -- A -- B -- C -- D -- E --
----------------------------------------------------
--22 --22 --22 --22 --22 --24 --24 --24 --24 --24 --
----------------------------------------------------
如何在 foreach() 中编写代码,以便获得预期的输出?我希望数据库设计没有问题。
更新:http://pastebin.com/ZYyJD6fA >> 这是 $object 值。您会注意到 $object 值和上面的问题之间的区别。上面的问题是简化版。重要的列是:survey_id、user_id、value1、value2 和 marker。其余的都不重要。
谢谢!
【问题讨论】:
-
你可以 var_dump($object) 并将其附加到问题中。
-
@Nouphal.M 你好,我已经用 $object 值的链接更新了问题。我无法在此处粘贴,因为超过了帖子的最大字符数。
标签: php codeigniter loops foreach