Aller au contenu

mac97000

Membre
  • Compteur de contenus

    7
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

0 Neutre

Pour me contacter

  • Mon Site
    http://www.mac97000.com
  1. C'est dingue comme ca parait simple quand on l'a fait 5 ou 6 fois mais la première reste difficile à digérer. J'ai fini par opter pour la solution suivante. Dans le table ani je défini un "code" qui est l'identifiant national (donc unique) de l'animal. j'ai ajouté des champs pour chaque lien de parenté dans lequel je donne le code national du parent ... J'ai l'impression de parler une langue étrangère mais je me comprend Encore merci pour vos éclaircissements
  2. Merci de votre participation, en fait j'ai du mal a simplifier autant le problème ... Chaque fiche animal comporte des rubriques, celle de l'animal en question comporte 12 champs, celle du père 22 champs, autant pour la mère et 8 champs pour chacun des grands parents.sans compter les id qu'il convient de rajouter en fonction du nombre de table et des croisements eventuels ... C'est pour ca que le nom seul du père ou de la mère ne m'inquiète pas trop mais en appelant le nom du père il faut que les 22 champs qui lui sont associé soit affichable également. Peut être est il tard et que la journée sur ce problème m'obscurcit l'esprit
  3. Bonjour à tous, (j'espère ne pas me tromper de liste ...) Le problème initial est assez simple, quoique si il l'était je n'aurais pas besoin de poster et/ou j'arriverais à poster un message compréhensible or je poste et j'ai du mal à formuler mon message ... Mes capacités: je sais créer une table sql simple et inter-agir sur elle depuis php mais il faut que ce soit basique ! Hors à mesure je complique la tâche et la d'un coup je me retrouve face à un mur que je n'arrive pas à contourner ... Pour résoudre mon problème Je pense que: je dois créer une base qui contiendra plusieurs tables (3 !) ces tables seront croisées. Je n'arrive pas du tout à savoir sur quel pied partir et comment faire, j'en arrive donc à vous exposer la situation qui me pose tant de souci pour savoir si une âme charitable pouvait éclairer mes lanternes sur la direction à prendre. La situation : Mr X est éleveur, pour présenter ses bêtes dans des conditions optimales de traçabilité il met leurs fiches en ligne. Ces fiches comportent plusieurs rubriques: - identité de l'animal - identité du père - identité de la mère - grand père et mère paternel et maternel ... Sachant qu'un même animal aura forcément sa propre fiche qu'il pourra être plusieurs fois père ou mère et également plusieurs fois grand père (ou ...) (parfois mais rarement grand père paternel et grand père maternel, si si ils n'ont pas de complexe) Le problème: Pour attaquer la chose du bon pied et ne pas la recommencer 50 fois, il est conseillé de la penser avant de la créer ... C'est la tout mon problème comme je n'ai pas les notions suffisantes pour penser le croisement de table, et qu'il serait absurde voir inutile de créer une table par animal avec tous les items a saisir un par un ... Quelqu'un se sentirait il l'âme de perdre son temps avec un ignare de mon espèce pour simplement me mettre sur le bon mode de raisonnement face à ce genre de situation ? Je ferais les recherches de mon côté pour ce qui est du croisement ... etc ... Merci d'avance à ceux qui ont pris le temps de me lire et à ceux qui en prendrait à me répondre. Cordialement Manuel Ps: la fiche en question est visible à ici (attention ceci est une adresse de travail elle a donc vocation a disparaitre)
  4. mac97000

    preg_replace ()

    Bonjour à ceux qui liront ce post par la suite. Le problème est résolu avec le code sous la forme complètement bidouille qui va suivre. Pour faciliter la compréhension, j'ai complètement éclaté le code pour qu'il soit plus simple à commenter. Dans un premier temps je défini tout les mots et expression dans une base de donnée mais la n'est pas le problème je passerais donc sur cette étape. Puis je défini le texte qui viendra dans ma balise "title" je le converti en MB_CASE_TITLE ce qui veut dire que tous les mots de la phrase commenceront par une majuscule ! (très utile pour la suite). $tintin ="tout savoir sur milou et tintin le capitaine la sardine et le professeur tournesol"; $tintin = mb_convert_case($tintin, MB_CASE_TITLE, "UTF-8"); Bien sur vous ne le verrez pas puisque c'est une balise "title" mais comme ça le preg_replace ne touchera plus au mot dans title puisque nous le rendrons sensible à la casse plus loin ! C'est maintenant que la bidouille intervient j'ai essayé en long en large et en travers pas moyen de lui dire de ne trouver que le mot (mêm avec \b il plantait ...) J'ai du faire une bidouille et pour qu'il ne surligne pas l'espace après le mot remplacé (dans le cas ou vos liens hypertextes sont souslignés) On replace le "title" dans l'url complète puisqu'il n'est pas question de faire subir le MB_CASE à notre URL ... La variable "$tintin" viendra donc remplacer le mot "tintin" dans le texte mais ne touchera pas au "Tintin" du "title" ni à l'éventuel "/tintin/" ou "/tintin.htm" qui pourrait se trouver dans notre url ! // pour que la regex fonctionne bien penser à l'espace après le </a> $tintin ='<a href="../tintin/fiche-tintin.htm" title="'.$tintin.'">tintin</a> '; Un petit texte bidon pour tester la chose ... à vous de coder $milou, $capitaine, $tournesol pour bien voir que tout fonctionne ... $text = 'Allez capitaine même milou est loin devant nous et ne parlons pas de tournesol... <br /> maintenant que tintin trâce la route le capitaine et le professeur tournesol n\'en veut plus à milou d\'avoir mangé ses chaussurses<br /> Pourtant tintin est sur que le capitaine fait encore des reproches à milou dans sa barbe, tandis que le professeur tournessol a 2 longueurs de retards.<br> Les pauvres jambes du professeur tournessol et dire que milou ne lui lache pas les baskets même si tintin le sermonne pour faire bonne figure devant le capitaine.<br/> Non d\'une pipe de vieux bandits, ce milou est encore allé dans la chambre du capitaine malgré que tintin lui est interdit l\'accès. Sacré milou, tintin ne peut pas le surveiller en permanence et le capitaine va finir par voir rouge.'; Et le plus compliqué, la regex qui ira chercher tous les mots à remplacer mais qui ne touchera pas à ces même mots si ils sont dans un "href" un "alt" un "title" ou tout autre balise ... $pattern = '#(?<!([a-zA-Z]\="[a-zA-Z]"){2})(tintin )#'; $text = preg_replace($pattern, $tintin, $text); Bien penser au petit espace après le mot à remplacer. Il y a certainement mieux et plus simple, mais c'est la première fois que je fais joujou avec des regex et avec un test arrière négatif Pour en savoir plus sur la méthode c'est dans cette direction qu'il faut chercher ( regex et test arrière négatif) Voila le post est résolu pour ma part .
  5. mac97000

    preg_replace ()

    Merci de prendre le temps de te pencher sur la question ... Lourd pas forcément comme c'est une fonction, une fois qu'elle est écrite on ne reviens pas dessus et basta Effectivement je vais regarder de ce côté la. On m'a proposé un test arrière négatif sur "alt" et "title", je vais voir lequel est le plus simple à mettre en oeuvre
  6. mac97000

    preg_replace ()

    Bonjour à tous, habituellement je fini toujours pas trouver moi même la solution en cherchant sur les différents forum et site internet très complet ... ce qui me permet également d'enrichir mes connaissances en tombant sur des info que j'ignorais, mais la rien :sad: Mon problème est pourtant très simple. J'utilise la fonction preg_replace pour les besoins de l'un de mes sites. Je l'alimente grâce à une base de donnée dans laquelle je défini les mots (ou expression) à remplacer par leur équivalent en lien cliquable. Je me trouve donc face au schéma: "mot" = <a href="mot_url title="mot_title">mot_texte</a> c'est un peu plus de travaille mais pour chaque mot je redéfini le texte ce qui à 2 avantages: - je ne suis pas obligé de changé exactement "mot" en "mot" cliquable - en ayant un seul "mot" dans ma table je peux lui donner plusieurs valeurs " mot | mots | mota | motas | mtos" ... tout cela n'est bien évidement que des exemples, le code fonctionne très très bien même trop bien et voilà mon problème :!: En effet, comme je rempli toutes mes balises "alt" et "title" mon fameux preg_replace est capable d'allez me trouver un mot dans les balises alt et title pour le rendre cliquable. Une balise avec un mot cliquable dedans ne ressemble plus à rien et fait planter le reste de ma page. Si vous aviez une piste vers laquelle m'orienter pour corriger cette anomalie je vous en serais très reconnaissant. Merci d'avance et bonne journée à tous ;-)
  7. Bonjour à tous, je suis presque dans le même cas que Romain à un détail prêt je souhaite rechercher/remplacer du texte dans mes pages web. le problème est que mes sites étant tous en xhtml (pas de connaissance php ) je les ai rédigé mot à mot ligne par ligne. Pour les améliorer je souhaiterais trouver des mots, locutions ou expressions et les remplacer par leur équivalent en lien cliquable. je suppose que la fonction a utiliser est str_replace. $rechercher = 'expression à modifier'; $remplacer = '<a href="url.htm">expression à modifier</a>'; $nouvelleChaine = str_replace($rechercher, $remplacer, $texte); Dans ce code j'ai deux problème que je n'arrive pas a résoudre: le $texte n'existe pas dans mes pages ! $page = basename($_SERVER["SCRIPT_NAME"]); $texte = file_get_contents($page); Me permet de retrouver le contenu de ma page en faisant comme ca ... mais je n'arrive pas a remplacer le contenu de la page initiale par le contenu modifié ! Et je ne suis même pas sur d'être sur la bonne voie NB: j'ai plus de 600 pages (sur 6 sites différents en tout) et j'ai relevé plus de 90 mots ou expression que je souhaiterais rendre cliquable ! chaque expression revient entre 4 et 20 fois par site ... je souhaiterais automatiser les modifications sous la forme d'une page définition, une fonction rechercher/remplacer les mots dans mes pages ... Merci de l'aide ou des informations que vous pourriez m'apporter. Mac97000
×
×
  • Créer...