如何从filemaker pro获取多个记录

时间:2013-07-25 06:18:50

标签: filemaker

表包含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>";
}
?> 

1 个答案:

答案 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表中的第一个相关记录来显示该值。

您应该采取的措施来解决这个问题:

  • 转到FileMaker中的schedule布局,查看eventsROY字段是来自time表还是来自其他相关表格
  • 如果它来自eventsROY表并且是计算,请确保从eventsROY表事件中评估计算(如果正在从可能导致问题的其他TO进行评估)太)
  • 返回您的php,尝试使用eventsROY代替print_r($record),以确保其他字段也返回预期的响应