FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

ID si 152810 den büyük olan bookingleri FileMaker PHP API kullanarak listele

+2 oy
410 kez görüntülendi

Merhaba arkadaşlar.

aşağıdaki gibi bir filemaker veritabanım var. Id si 152810 den büyük olan bookingleri php api kullanarak listelemek istiyorum getFirstRecord() kullanırsam ilk satırı gösteriyor getRecords() kullanırsam fatal error: Call to a member function getField() on a non-object hatası alıyorum. Yardımcı olabilirseniz çok sevinirim.

 

 

include("filemaker.php");
$id = "152801";
$fm = new FileMaker('OpenBooking', 'n432.fmphost.com', 'admin','şifre');
$findCommand = $fm->newFindCommand("Bookings");
$findCommand->addFindCriterion("_kpnID",'>'.$id);
$result = $findCommand->execute();
if (FileMaker::isError($result)) {
    echo ($result->getMessage());
    return;
}
$records = $result->getFirstRecord(); // bu şekilde ilk kolon başarılı bir şekilde görüntüleniyor

$records = $result->getRecords(); // bu şekilde yaparsam şu hatayı alıyorum: Fatal error: Call to a member function getField() on a non-object in D:\XAMPP\htdocs...  

foreach ($records as $record => $id) 
?> 
<table>
<tr>
<td>_kpnID</td>

<td>_kfnInvoicedNot</td>

<td>_kfnInvoice<ID</td>

<td>_kfnPersonID</td>

<td>ctSaleType</td>

<td>_kfnAgentID</td>

<td>nDiscount_percent</td>

<td>nTotalPrice</td>

<td>booking_TOUR::tDescription</td>
 </tr>
 <? { ?>
<tr>
<td><?=$records->getField("_kpnID");?></td>
<td><?=$records->getField("_kfnInvoicedNot");?></td>
<td><?=$records->getField("_kfnInvoice");?></td>
<td><?=$records->getField("_kfnPersonID");?></td>
<td><?=$records->getField("ctSaleType");?></td>
<td><?=$records->getField("_kfnAgentID");?></td>

<td><?=$records->getField("nDiscount_percent");?></td>

<td><?=$records->getField("nTotalPrice");?></td>

<td><?=$records->getField("booking_TOUR::tDescription");?></td>
</tr>
<? 
}
?>
</table>
<? echo "total bookings listed:".count($records); ?>

6, Ocak, 2017 PHP kategorisinde johnny (2,840 puan) tarafından soruldu
6, Ocak, 2017 johnny tarafından düzenlendi

1 cevap

+1 oy
 
En İyi Cevap
getRecords() bir dizi (array) döndürürken, getFirstRecord() filemaker record nesnesi döndürür. Sadece filemeker record nesnesinden alan verisi çekilebilir. Yapılması gerkeen array'deki bilgileri önce filemaker record'a çevirmek gerekiyor. Neyse ki foreach komutu bunu bizim için yapıyor, aşağıya bir örnek ekliyorum. 
 
foreach ($records as $record) {
    echo '<tr>';
    echo '<td>'.$record->getField('Status').'</td>';
    echo '<td>'.$record->getField('Type').'</td>';
    echo '<td>'.$record->getField('Account Name').'</td>';
    echo '</tr>';
}
7, Ocak, 2017 F. Osman Cabi (197,900 puan) tarafından cevaplandı
7, Ocak, 2017 johnny tarafından seçilmiş
for each eklenmiş, şimdi farkettim. $records->getField("_kpnID") yerine $record->getField("_kpnID") kullanılmalı.
çalıştı çok teşekürler.
...