表包含1304条记录,但在运行下面给出的脚本后,它只显示最后一条记录1304次。所以请帮助我。从filemaker获取多条记录是可能的,我也不知道。
<?php include ("dbaccess.php");?>
<?php
//Create the 'find all' command and specify the layout
$findCommand = $fm->newFindAllCommand('eventsROY');
//Perform the find and store the result
$result = $findCommand->execute();
//Check for an error
if (FileMaker::isError($result)) {
echo "<p>Error: " . $result->getMessage() . "</p>";
exit;
}
//Store the matching records
$records = $result->getRecords();
//print_r($records);
echo $cnt = count($records);
foreach($records as $rc){
$time = $rc->getField('time');echo "<pre>";
print_r($time);
echo "<pre>";
}
?>
答案 0 :(得分:0)
这个问题已经超级老了,所以我不确定它是否还是一个问题,但如果可能的话,我可以提供帮助。
布局eventsROY
布局上的字段是什么样的?更重要的是,它们都来自布局的本机表事件,还是其中一些,time
具体来自不同的相关表?
你的结构是正确的。我在这里清理了一下:
<?php
include ("dbaccess.php");
//Create the 'find all' command and specify the layout
$findCommand = $fm->newFindAllCommand('eventsROY');
//Perform the find and store the result
$result = $findCommand->execute();
//Check for an error
if (FileMaker::isError($result)) {
echo "<p>Error: " . $result->getMessage() . "</p>";
exit;
}
//Store the matching records
echo $count = $result->getFetchCount();
foreach($result->getRecords() as $record){
$time = $record->getField('time');
echo "<pre>";
print_r($time);
echo "<pre>";
}
?>
因此,如果您从eventsROY
表获得了预期的记录计数,则意味着查询正在运行,如果您从时间字段获取值(即使它是错误的)它表示该字段在eventsROY
布局上可用。
我可以看到这种方式反复拉出相同的time
值的方法是,如果时间是来自相关表的字段,并且该相关表的关系使用{{{中的每个记录的相同相关记录1}}表。例如,如果您有一个名为eventsROY
的表通过笛卡尔联接(schedule
)与eventsROY
表相关,那么当您查看任何X
字段时schedule::time
记录该值将是相同的,因为它使用eventsROY
表中的第一个相关记录来显示该值。
您应该采取的措施来解决这个问题:
schedule
布局,查看eventsROY
字段是来自time
表还是来自其他相关表格eventsROY
表并且是计算,请确保从eventsROY
表事件中评估计算(如果正在从可能导致问题的其他TO进行评估)太)eventsROY
代替print_r($record)
,以确保其他字段也返回预期的响应