Jump to content
  • 0

[Php] Recherche Avancée


Question

Bonjour, je développe en php à partir d'une base FM sur un FM serveur 11.

Je voudrais savoir si quelqu'un à déjà réalisé une recherche en autocompletion.

Je m'explique :

Actuellement, je recherche depuis un champs HTML la concordance avec une colonne d'une table.

Je tape un numéro, je vérifie s'il existe dans la colonne ISBN sinon, dans la colonne NUART sinon je n'ai pas de résultat.

Le résultat correspond à une ligne dans la base.

J'ai aussi une recherche avancée qui consiste à lister dans un menu déroulant des choix existants (la liste des collections par exemple)

J'ai 4 critères (collection, année, état, secteur). J'arrive sur une page de résultat. [commande : ->addFindCriterion ]

J'aimerais pouvoir faire une recherche en autocomplétion. J'arrive à ce résultat quand je pointe sur une base sql.

Je commence à taper le début de l'isbn et il me propose les 5 premiers résultats possibles en cours de saisi.

Je peux commencer à taper un mot et il le cherche dans les colonnes collection ou titre et affiche les 5 premiers résultats possible.

J'aimerais réaliser cela sur ma base FM11.

Si quelqu'un peut m'aider.

Merci,

Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 0

C'est du comportement dynamique coté client, donc de l'ajax.

Tu peux utiliser pour cela JQuery et son plugin Autocomplete.

Attention, ce genre de chose peut être très gourmand en ressources serveur. Déjà que PHP/FMS n'est pas une foudre de guerre...

Yvan

Link to post
Share on other sites
  • 0

Euh oui, là je suis d'accord avec Yvan, faire ce genre de requête Ajax à un serveur FMS11 via la couche PHP/XML... je ne le sens pas trop. M'est avis que que soit le résultat ne sera pas à la hauteur de la réactivité attendue, soit le serveur FileMaker va faire grise mine. Voire les 2 à la fois ;)

Link to post
Share on other sites
  • 0

arf dommage!

Déjà qu'une recherche uniquement sur l'année met 1 minute à s'afficher... (400 résultats).

Je pensais qu'avec la version 11, on augmenterais la puissance. Augmenter la puissance du serveur FM peut accélérer le résultat?

Pour ma recherche actuelle, je divise en 20 résultats/page. Mais pour avoir le nombre de page, il faut que je connaisse le nombre de résultat.

Je fais donc une requête total puis une requête de 0 à 19 par exemple. J'aimerais augmenter la rapidité. Avez-vous des idées?

Sinon, y aurait-il un moyen de copier la base FM dans la base SQL toute les minutes pour les avoir les MAJ comme ça je ferai la recherche dans la base et non dans FM?

Merci pour les réponses!

Link to post
Share on other sites
  • 0

FileMaker est la base de référence de ma boite, donc pas modifiable.

ESS? Pouvez-vous m'en dire plus?

http://www.filemaker.fr/products/filemaker-pro/sql.html

http://www.filemaker.fr/support/technologies/sql.html

J'ai trouvé ça.

Cela veut dire qu'on peut, via php, automatiquement pointer vers une base MySQL qui est alimenté par FM 11 ?

Si on modifie une data dans FM11, le MySql est mis à jour?

Link to post
Share on other sites
  • 0
Cela veut dire qu'on peut, via php, automatiquement pointer vers une base MySQL qui est alimenté par FM 11 ?

Si on modifie une data dans FM11, le MySql est mis à jour?

La solution que je préconise en général, c'est du PHP qui va taper dans une base MySQL, elle-même alimentée par des exports CSV (exports qui peuvent être automatisés : tous les matins à 1h52, on lance les scripts) (ben oui, il y en a marre de tous ces trucs qui se lancent à minuit pile).

L'idée de l'ESS est effectivement d'avoir une liaison directe entre les deux, mais je n'ai jamais expérimenté (les sites hébergés étaient distants, donc difficilement exploitables avec de l'ESS sur des volumes un peu importants).

Mais bon, il faut voir en fonction du contexte (tiens, il me semble avoir vu une signature qui disait plus ou moins ça :P)

Yvan

Link to post
Share on other sites
  • 0
Déjà qu'une recherche uniquement sur l'année met 1 minute à s'afficher... (400 résultats)

Même pour du PHP/FMS, ca me parait TRES TRES lent.

A mon avis, tu as une erreur de conception et/ou de réalisation qque part (filtrage au mauvais endroit, modèle surchargé et non spécifique à PHP, utilisation du client léger comme si c'était du client lourd, ...)

Yvan

Link to post
Share on other sites
  • 0

J'aimerais bien savoir où mon code peine.

Connaissez-vous des experts API PHP de FM capable de venir voir le code?

Concernant la MAJ des données FM, peut-on la réaliser chaque minute, plutôt qu'une fois par jour?

Pourquoi parlez-vous de CSV?

L’application est un intranet donc les 2 serveurs sont très proches.

Link to post
Share on other sites
  • 0
Connaissez-vous des experts API PHP de FM capable de venir voir le code?

Toutes les personnes actives sur cette partie du forum, à commencer par les deux qui ont répondu o:).

Concernant la MAJ des données FM, peut-on la réaliser chaque minute, plutôt qu'une fois par jour?

Toutes les minutes, cela me parait excessif, mais il faut voir en fonction du besoin.

La MAJ en direct impose de travailler avec les "deltas" d'une MAJ à l'autre, et cela peut utiliser des ressources systèmes qui peuvent être non négligeables. En clair, ton système va passer plus de temps à gérer les mises à jour qu'à faire le boulot "utile". Le plus gros problème apparait pour "mettre à jour" les enregistrements supprimés, qui obligent à une mécanique spéciale du coté de FM.

Si le coté instantané est impératif, il vaut mieux se tourner vers une solution ESS, surtout si les serveurs sont reliés par une bonne liaison (ethernet 10Mb minimum)

Pourquoi parlez-vous de CSV?

CSV : Comma Separed Value. Ce sont des fichiers textes qui vont contenir les informations à transférer de FM vers MySQL. FM le génère, un script (AppleScript ou PowerShell) le transfère, PHP le récupère et l'injecte dans MySQL.

Yvan

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...