FILEMAKER Y PHP.
Filemaker es una base de datos con inumerables ventajas y que en muchas ocasiones infrautilizamos ciñendonos unicamente a su uso dentro del entorno de Filemaker.
El uso de PHP con Filemaker nos abrirá un mundo de infinitas posibilidades en nuestros programas desarrollados sobre Filemaker, entre ellas, la posibilidad de conectar hasta 2.000 usuarios simultaneos a nuestro programa o realizar paginas web enlazadas, tiendas online , catálogos etc..
La Conexión de PHP a filemaker podrás realizarla con los siguiente 4 Pasos
1º) Instalar la API de Filemaker en nuestro Filemaker Server.
Cuando hagamos la instalación de nuestro Filemaker Server no nos olvidemos seleccionar la API PHP de Filemaker en nuestra instalación.
2º) Dar acceso a los usuarios mediante acceso web PHP a nuestro programa en usuarios y privilegios.
3º) Para que Filemaker sea accesible mediante PHP, debemos instalar en nuestro servidor PHP el Paquete API para PHP de Filemaker. Esto es muy sencillo, no es mas que coger la carpeta , descomprimirla y copiarla en nuestra carpeta principal del servidor web que vayamos a utilizar y que debera tener PHP.
Esta carpeta tiene la siguiente localización.
- Para IIS (Windows):
[drive]:\Program Files\FileMaker\FileMaker Server\Web
Publishing\FM_API_for_PHP_Standalone.zip
- Para Mac (macOS):
/Library/FileMaker Server/Web
Publishing/FM_API_for_PHP_Standalone.zip
Esta parte es muy importante, si no introducimos estos archivos en nuestro servidor nuestras páginas no funcionarán.
4) Vamos a conectar nuestra página PHP con nuestra base de datos Filemaker:
Sustituir los campos en rojo por los nuestros.
include("FileMaker.php");
$fm = new FileMaker();
$fm->setProperty('database', '
nombreBD'); //sustituir NombreBD por el nombre de la base de datos
$fm->setProperty('hostspec', '
http://xxx.xxxx.xxx');//Sustituir http://xxx por nuestro dominio
$fm->setProperty('username', '
web'); //web nombre del usuario de la base de datos
$fm->setProperty('password', '
web');// Contraseña que le hemos asignado
require_once ('FileMaker.php');
Una vez conectados ya podemos comenzar nuestra programación en PHP.
Aquí os dejo un ejemplo para hacer las pruebas.
En este ejemplo nos conectamos a una tabla de la base de datos. Busca en un campo el texto que hemos introducido y devuelve el contenido de otro campo que hemos elegido de la misma tabla del registro coincidente con la busqueda. (Por ejemplo podeis hacer una tabla con nombre y teléfono. Que busque por el nombre y os devuelva el teléfono)
EJEMPLO:
_____________
<html>
<body>
<head><title>Consulta de un campo en filemaker</title></head>
<body>
<?php if ($_SERVER['REQUEST_METHOD'] == 'GET') { ?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
Criterio de Busqueda
<input type="text" name="criterio" /><br/>
<input type="submit" value="Enviar Consulta" />
</form>
<?php } else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_POST['criterio'];
printf("Consulta enviada " );
include("FileMaker.php");
$fm = new FileMaker();
$fm->setProperty('database', '
1');
$fm->setProperty('hostspec', '
2');
$fm->setProperty('username', '
3');
$fm->setProperty('password', '
4');
$findCommand = $fm->newFindCommand("
5");
$findCommand->addFindCriterion("
6", $name);
$findCommand->setRange(0, 3);
$result = $findCommand->execute();
if (FileMaker::isError($result)) {
echo($result->getMessage());
return;
}
$record = $result->getFirstRecord();
$resul = $record->getField("
7");
echo("La busqueda por $name da el siguiente resultado: $resul");
if (FileMaker::isError($scripts)) {
printf("Error %s: %s\n", $scripts->getCode(), $scripts->getMessage());
exit;
}
// Print out script names
foreach ($scripts as $script) {
echo "$script<br>";
}
} else {
die("This script only works with GET and POST requests.");
} ?>
<?php $name = $_POST['criterio']; ?>
<h1>El Resultado de la busqueda por <?php echo($name) ?></h1>
</body>
</html>
______________
1- Nombre de la Base de datos
2- Direccion url de la base de datos o IP
3- Nombre de cuenta
4- Contraseña
5- Tabla en la que tiene que realizar la busqueda
6- Nombre del campo donde tiene que encontrara la coincidencia
7- Nombre del campo que tiene que devolver su contenido.
Jose Sugasaga
Desarrollador de Software.
Maliaño - Cantabria - España.
Santander +34 610 112 271
jose@tipicocantabria.com