J'ai un formulaire (composé de plus de 25 champs) et les valeurs de ces champs vont d'une petite valeur à une chaîne concaténée. C'est comme un outil de recherche. Maintenant, lorsque l'utilisateur remplit le formulaire et soumet l'information, il obtient de voir toutes les données pertinentes qui correspondent aux critères dans le formulaire. J'affiche 15 dossiers à la fois à l'utilisateur. J'ai implémenté la pagination pour permettre à l'utilisateur de voir les autres enregistrements.PHP, MySQL: Comment conserver et récupérer les données correctes lors de la pagination
le principal problème:
La partie, jusqu'à ce que les utilisateurs soumet les informations et récupère le 1er jeu de données est bonne. Le problème se pose lorsque l'utilisateur tente d'accéder à la deuxième page (ou à n'importe quelle page de son choix) via la pagination. L'utilisateur peut naviguer vers les autres pages, mais la requête nécessaire pour exécuter correctement les résultats de la base de données n'est pas déclenchée. Notez qu'initialement, il s'agissait d'une opération POST qui a été effectuée dans le formulaire et la pagination effectue une opération GET. Donc, je perds les valeurs de la forme que l'utilisateur a entré et je veux conserver ces valeurs et interroger la base de données avec ces valeurs. J'essaie d'éviter d'envoyer les valeurs du champ de formulaire via GET car je crains que les données puissent dépasser la valeur maximale autorisée dans l'URL (& car elle est moins sécurisée qu'une opération POST). D'autres opérations peuvent être effectuées sur la page de résultats, ce qui peut entraîner la perte des valeurs de formulaire si j'essaie d'utiliser une opération POST (comme une requête de mise à jour). Les sessions ne fonctionneraient pas vraiment car l'utilisateur peut choisir d'exécuter le même formulaire dans différents onglets avec des entrées différentes pour comparer les résultats, ce qui peut entraîner le remplacement des données de l'ancienne requête par les données de la nouvelle requête. Je n'ai pas pensé aux cookies car l'utilisateur a peut-être choisi de le bloquer. Presque toutes les options semblent être épuisées. Donc, que puis-je faire pour conserver les valeurs de formulaire, exécuter la requête appropriée et récupérer les valeurs pertinentes quel que soit le nombre de fois le même formulaire peut être traité par le même utilisateur dans différents onglets/fenêtres du navigateur, sans utiliser sessions (étant donné les restrictions sur le passage des données via GET et éventuellement les perdre dans les opérations POST) et être en mesure d'effectuer d'autres activités sur la page ainsi?
Merci d'avance.
Merci pour la réponse. Stocker dans la DB sonne bien. Je voudrais juste garder un onglet sur eux. Je vais réfléchir davantage sur la façon dont cela peut être fait avec la même approche. Merci. – Devner
Comment un index sur une colonne de données (contenant le tableau sérialisé des variables) affectera-t-il nos résultats de recherche? L'index sera certainement plus rapide, mais compte tenu de la longueur des données, que suggérez-vous? – Devner
Eh bien, créez deux index. Un PK sur 'id', et un index sur' data'. De cette façon, les deux opérations sont de simples recherches d'index ... Maintenant, puisque la longueur de l'index sur les données sera plus petite (Utiliser une colonne Text pour le champ 'data', donc l'index serait d'environ 255 caractères), ce n'est pas une véritable recherche d'index , mais il devrait être très rapide même avec des dizaines ou des centaines de milliers de recherches ... – ircmaxell