Упростите функцию php, которая использует FileMaker API - PullRequest
0 голосов
/ 12 апреля 2011

Я использую PHP FileMaker API для получения данных FileMaker в php.Так что это работает очень хорошо.Я хотел бы упростить это.

/** This code is correct and can't modify ***/
require_once ('inc/FM/FileMaker.php');
require_once ('inc/FM/param_FM.php');
$modele="Mura";
$id_folder=$_GET["folder"];
$id_ouvrage=$_GET["id"];
$findCommand =& $base->newFindCommand($modele);
$findCommand ->addFindCriterion('ID OUVRAGE', $id_ouvrage);
$result = $findCommand->execute();
if (!FileMaker::isError($result)) {
    $records = $result->getRecords();
}
else{
    echo "No result";
}
/*** END unmodify code ***/

Когда я хочу показать некоторые данные, я использую это:

$Collection  = $records[0]->getField('Collection book');
$title = $records[0]->getField('Title book');
$years = $records[0]->getField('Years book');

Но у меня есть все данные в массиве.

$data= array('Collection' => 'Collection book','Title' => 'Title book', 'years' => 'Years book');

У меня есть 48 таких данных.Могу ли я использовать этот массив для упрощения всех данных?Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 13 апреля 2011

Я не совсем уверен, если это то, что вы просите, и это не имеет особого смысла, если у вас есть только три поля, но вы могли бы сделать что-то вроде этого:

foreach ( $data as $var => $field ) {
  $$var = $records[0]->getField( $field );
}

Это создаст переменную для каждого из ключей, которые у вас есть в вашем массиве. С указанным вами $data будет создано $Collection с 'Collection book', $Title с 'Title book' и $years с 'Years book'. Обратите внимание на использование заглавных букв в именах переменных, потому что два ключа в вашем массиве являются заглавными.

...