对不起,让我试着解释。这个问题涉及到公司可以设计自己的“日志”的自定义日志记录软件。每个日志都有一个对应的元数据表,其中包含来自其日志的列。从一张桌子与另一张桌子匹配的列
我使用php来渲染日志中的数据显示。我首先从实际日志访问的列名在元表,并用它来建立与一个foreach表头,如图
foreach ($logStructure as $header)
{
echo '<th>' . $header['label'] . '</th>';
}
endforeach;
现在我已经做了另一种选择的行显示和具有在数组调用$ logrow。 我该如何着手遍历这些行并将正确的数据放入右列? 在SQL中我会用一个WHERE子句说点什么以下等效:
'WHERE $logrow['fieldname'] = $header['label']'
举个例子元表的字段是这样
[metaid] [columnLabel] [columnNameInData]
001 Log Number logNum
002 Author CreateUser
003 Subject Entry
得到的数据放到$报头[]通过像这样
SELECT columnLabel AS label FROM metatable;
日志结构声明中看起来像这样
[logNum] [CreateUser] [Entry]
001 Admin Some Text about Stuff
002 Editor 1 Another Amazing Entry
003 Editor 2 It gets old by now
所以选择这个样子的
SELECT logNum, CreateUser, Entry FROM log
得到的数据放入$logrow['lognum'], $logrow['CreateUser'], $logrow['Entry']
希望这将清除的问题了好一点,我期待与匹配元数据的列名来自实际数据中这些字段的值。
列名是否对应?如果是,那么一个循环和一个新的数组应该可以让你在那里。如果不是,您可能需要设置一个单独的排序数组,以便先按正确顺序排列它们。 –
是的,他们是在相同的顺序,我的问题是在第一个数组中,所有列标题是数组中的'标签'键下的值,第二个数组,每个键是它自己的名字。一世。如果第一个字段是recordNumber,它将作为第一个$ header ['label']值存储在第一个数组中,在第二个数组中它将作为header ['recordNumber']存储。我试图避免硬编码字段名,这样不同的公司可以设置不同的列名。 – metaDNA
我认为我们需要一些示例日志表结构和来自元数据表的数据。 –