Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FileMaker 11 PHP and ODBC new line / carriage return

I am connecting to FileMaker Pro 11 Server with a ODBC Connection. I am importing some information from the eBay API.

When I recieve the address from ebay, it comes in two fields address1 and address2. In the FileMaker database we just have one field for address. I am trying to separate the two addresses with a line break or carriage return with PHP but it never seems to work.

I would try to insert:

"$var1\n$var2"

and FileMaker will read the \n as normal text. Same goes for \r. I have also tried setting the string with:

<<<EOF 

with no success either. I also tried the pie symbol that I read works for line breaks but it does not work in this manner.

So basically.. how can I insert a line break that filemaker will understand with php pdo and odbc?

like image 608
Ghassan Idriss Avatar asked Apr 12 '11 19:04

Ghassan Idriss


4 Answers

I did some testing, and found that even if I did something like $var1 . ord( 10 ) . $var2 it wasn't working correctly. I did double-check and the carriage return in a field when typed in from within the FileMaker client is ASCII char 10 (\n). So here's how I solved it.

I edited the record to insert '12<br>34'. Then I set the field definition within FileMaker for the field I was setting to auto-enter a calculation. My field was called TestField, so my calculation turned out to be Substitute( TestField; "<br>"; ¶ ). Make sure you uncheck the Do not replace existing value checkbox. Once I did that, editing the field from PHP using '12<br>34' as the string put in a carriage return between the 12 and the 34.

like image 170
Chuck Avatar answered Nov 18 '22 09:11

Chuck


Ran across this page on google when having the same problem. Didn't want to try using the auto-enter cal option so got it going with php alone...

    $var1 . char( 13 ) . $var2  

Also when pulling a value out of FileMaker field that has carriage returns you need to be careful when you put it into a variable and back into FileMaker. For example:

To pull it into a php variable:

    $variable = nl2br($record->getField("field1"));

and to put it back into FileMaker:

    $record->setField('field1',str_replace('<br />',chr(13),$variable));

Regards

like image 1
bsg Avatar answered Nov 18 '22 10:11

bsg


The break has to be in it's own double quote like this:

$var1 . "\n" . $var2

or:

'var1' . "\n" . 'var2'
like image 1
Johnny Krenek Avatar answered Nov 18 '22 08:11

Johnny Krenek


Ran into this issue with Filemaker and Java JDBC today. Here's the solution which may of help to others.

Character ch = new Character('\n');                    
String dataForFM = "Field Data Here" + ch.toString() + "More Field Data Here";
like image 1
Ashley Swatton Avatar answered Nov 18 '22 10:11

Ashley Swatton