FilemakerTurk, AYS Bilişim tarafından desteklenmektedir.
Filemakerturk.com a Hoş geldiniz.
 AYS Bilişim
 
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						
Filemaker Lisans İhtiyacınız için FilemakerTürk Yönetimi ile iletişime geçin
 
Alakalı Siteler:

AYS Bilişim


Cabitaş


Göksel Gökçe

 

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

+2 oy
298 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 (172,030 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.
...