Anomalie #311
ferméBug recherche adhérant (filtre nom)
100%
Description
La recherche retourne toujours vide sur beaucoup de noms d'adhérants ajoutés
avant la migration (i.e v0.62 -> v7) ...mais pas sur tous, c'est étrange.
(ceux ajoutés après ne posent pas de pb.)
Plus étrange, le fait de "modifier" la fiche même si aucun changement
n'est effectué dessus (juste clic sur le bouton enregistrer) permet
au filtre nom sur ce membre de remarcher.
??
(le filtre url marche convenablement sur tous.)
Mis à jour par Johan Cwiklinski il y a plus de 12 ans
Serait-il possible de me filer (ici ou par mail direct au besoin) une ou deux instructions INSERT pour créer des adhérents « foireux » ?
Je n'ai pas de données 0.62, je ne serai pas en mesure de reproduire le problème.
Mis à jour par Frédéric Mathis il y a plus de 12 ans
Salut Mathdesc,
J'ai les mêmes symptômes que toi, j'ai migré d'un 0.62 vers la 0.70.
J'ai un peu creusé la question et je me suis aperçu que lorsque le champ pseudo_adh contient la valeur NULL la recherche sur le filtre NOM ne fonctionne plus. D'après la structure de la table de base de la 0.70, NULL semble être une valeur normale. J'ai fait la manipulation et contre manipulation pour vérifier ma théorie, peut-être peux-tu faire la même chose.
Il semblerait que lorsqu'on ouvre en modification et qu'on enregistre sans rien faire, ce champ se vide de la valeur NULL, ce qui expliquerait pourquoi en faisant cette manipulation cela fonctionne après.
Johan,
Je ne peux pas te fournir d'insert car j'ai fait des modifications dans ma base de données de la 0.62, mais peut être que ça sera limpide pour toi avec ce que j'ai écris plus haut.
Mis à jour par Johan Cwiklinski il y a plus de 12 ans
- Assigné à mis à Johan Cwiklinski
- Catégorie mis à Database
Frédéric Mathis a écrit :
Johan,
Je ne peux pas te fournir d'insert car j'ai fait des modifications dans ma base de données de la 0.62, mais peut être que ça sera limpide pour toi avec ce que j'ai écris plus haut.
Ok, en effet, je devrai avoir assez d'infos pour trouver ce qui cloche... Enfin, je vais essayer déjà ;)
Mis à jour par Johan Cwiklinski il y a plus de 12 ans
Ok, j'ai compris. Lors de la recherche par nom, on concatène les champs nom, prénom et pseudo dans la requête directement.
Il semble que ce soit la concaténation avec un NULL
qui pose le souci. Je ne pense pas que ce filtre soit incorrect, il faut donc corriger la base de données.
L'ensemble de requête qui suit devrait corriger le problème :
UPDATE galette_adherents SET pseudo_adh = '' WHERE pseudo_adh IS NULL; UPDATE galette_adherents SET nom_adh = '' WHERE nom_adh IS NULL; UPDATE galette_adherents SET prenom_adh = '' WHERE prenom_adh IS NULL;
Les champs pseudo et prénom sont marqués comme pouvant être NULL, je corrigerai ça dans les scripts de mise à jour en 0.7.1. Si l'un d'entre vous peut me confirmer queles requêtes fonctionnent bien sous Mysql,ce serait sympa :)
Mis à jour par Johan Cwiklinski il y a plus de 12 ans
À vrai dire, ce n'est pas nécessaire pour nom_adh.
Mis à jour par Mathdesc Mathdesc il y a plus de 12 ans
Johan Cwiklinski a écrit :
Ok, j'ai compris. Lors de la recherche par nom, on concatène les champs nom, prénom et pseudo dans la requête directement.
Il semble que ce soit la concaténation avec un NULL qui pose le souci. Je ne pense pas que ce filtre soit incorrect, il faut donc corriger la base de données.
Je suis d'accord;
Au vu du schéma table adhérants, j'imagine qu'une même requête sql soit executée quelque soit le filtre effectivement demandé (nom,prénom,pseudo) a l'avantage
du cache, s'il advient que l'utilisateur change de filtre sans modifier le motif de recherche.
À vrai dire, ce n'est pas nécessaire pour nom_adh.
UPDATE galette_adherents SET pseudo_adh = '' WHERE pseudo_adh IS NULL;
C'est correct et juste suffisant. :)
Bien joué Johan, Frédéric, mille mercis.
Mis à jour par Johan Cwiklinski il y a plus de 12 ans
- Statut changé de Nouveau à Résolu
- % réalisé changé de 0 à 100
Appliqué par commit 3aeee3655af56370b52145b9449e912f4e402311.
Mis à jour par Frédéric Mathis il y a plus de 12 ans
Mathdesc Mathdesc a écrit :
Johan Cwiklinski a écrit :
Ok, j'ai compris. Lors de la recherche par nom, on concatène les champs nom, prénom et pseudo dans la requête directement.
Il semble que ce soit la concaténation avec un NULL qui pose le souci. Je ne pense pas que ce filtre soit incorrect, il faut donc corriger la base de données.Je suis d'accord;
Au vu du schéma table adhérants, j'imagine qu'une même requête sql soit executée quelque soit le filtre effectivement demandé (nom,prénom,pseudo) a l'avantage
du cache, s'il advient que l'utilisateur change de filtre sans modifier le motif de recherche.À vrai dire, ce n'est pas nécessaire pour nom_adh.
[...]
C'est correct et juste suffisant. :)Bien joué Johan, Frédéric, mille mercis.
Salut,
C'est toujours un plaisir d'aider la communauté ... et puis j'ai 4 années de tests et validations sur logiciels derrière moi ... ça aide !
J'ai appliqué la requête sur ma base de données de la 0.7, ça fonctionne très bien, du coup le fait-on sur prenom_adh sachant que ce n'est pas utile sur nom_adh ?
Fred
Mis à jour par Johan Cwiklinski il y a plus de 12 ans
- Statut changé de Résolu à Fermé
Frédéric Mathis a écrit :
C'est toujours un plaisir d'aider la communauté ... et puis j'ai 4 années de tests et validations sur logiciels derrière moi ... ça aide !
Ça peut, oui :-)
J'ai appliqué la requête sur ma base de données de la 0.7, ça fonctionne très bien, du coup le fait-on sur prenom_adh sachant que ce n'est pas utile sur nom_adh ?
Oui, il faut le faire aussi sur prenom_adh
, le même problème pourrait se reproduire (peu de chances avec les 0.7.x mais bon... autant faire les choses correctement ;))
Merci !