WRInaute accro
Parfois vous avez besoin de stocker une info pour un article dans des cas très rares (par exemple 1 pour 1000).
On peut avoir besoin de stocker cette info rapidement et la mettre en place rapidement.
Comment faire ?
Solution classique :
- modifier la structure de la table pour ajouter un champ
- modifier tous les scripts de création et de modification d'un article pour y ajouter ce champ dans les formulaires
- modifier les ordres INSERT et UPDATE
- modifier tous les scripts qui font des SELECT pour ajouter ce champ quand on en a besoin
- prier pour ne pas faire d'erreur
- tout tester
L'astuce qui va vous faire gagner beaucoup de temps et de sécurité dans sa mise en place
Dans vos tables article ou produit vous pouvez prévoir un champ fourre-tout qui vous servira à stocker tout et n'importe quoi par l'intermédiaire de codifications de style bbcode.
J'avais par exemple mes méta-description qui étaient générées automatique à partir du titre et de la petite description (genre chapô). Mais j'ai eu besoin d'y permettre, pour certains articles, des méta description spécifiques, par contre je n'avais aucun champ dans ma base pour stocker cette info méta_spécifique.
Sans modifier aucun script de la console d'administration j'ai simplement ajouté dans mon champ "fourre-tout" les informations sous cette forme :
L'information est encadrée par des balises [D] et [/D] et je peux utiliser d'autres infos dans le même champ fourre-tout, encadrées, elles, par d'autres balises. Chaque balise correspond à une fonctionnalité particulière. C'est par exemple dans ce champ que j'y colle mes TAGs avec les balises [k1]...[/k1], [k2]...[/k2] etc....
Dans le script de formatage de l'affichage, l'instruction à mettre pour extraire ce qui se trouve entre les balises [D] et [/D] est la suivante :
Et voilà, j'ai mon information extraite de mon champ fourre_tout, je peux en faire ce que je veux et je n'ai absolument pas eu besoin de modifier quoi que ce soit d'autre et en particulier la structure de ma base de données.
Il faut simplement prévoir ce champ dès le départ et l'intégrer aux scripts de création/modification et aux formulaires.
Ca permet d'économiser beaucoup de place en base et de conserver une simplicité quand il s'agit de champs qui sont utilisés que pour une très faible population de produits ou d'articles.
On peut avoir besoin de stocker cette info rapidement et la mettre en place rapidement.
Comment faire ?
Solution classique :
- modifier la structure de la table pour ajouter un champ
- modifier tous les scripts de création et de modification d'un article pour y ajouter ce champ dans les formulaires
- modifier les ordres INSERT et UPDATE
- modifier tous les scripts qui font des SELECT pour ajouter ce champ quand on en a besoin
- prier pour ne pas faire d'erreur
- tout tester
L'astuce qui va vous faire gagner beaucoup de temps et de sécurité dans sa mise en place
Dans vos tables article ou produit vous pouvez prévoir un champ fourre-tout qui vous servira à stocker tout et n'importe quoi par l'intermédiaire de codifications de style bbcode.
J'avais par exemple mes méta-description qui étaient générées automatique à partir du titre et de la petite description (genre chapô). Mais j'ai eu besoin d'y permettre, pour certains articles, des méta description spécifiques, par contre je n'avais aucun champ dans ma base pour stocker cette info méta_spécifique.
Sans modifier aucun script de la console d'administration j'ai simplement ajouté dans mon champ "fourre-tout" les informations sous cette forme :
Code:
[D]l'information spécifique que je veux mettre en meta description[/D]
Dans le script de formatage de l'affichage, l'instruction à mettre pour extraire ce qui se trouve entre les balises [D] et [/D] est la suivante :
Code:
$DOC_DESC_SPE1 = stripslashes(strip_tags($prod['fourre_tout']));
preg_match('#\[D\](.+)\[\/D\]#isU', $DOC_DESC_SPE1, $DOC_DESC_SPE);
Et voilà, j'ai mon information extraite de mon champ fourre_tout, je peux en faire ce que je veux et je n'ai absolument pas eu besoin de modifier quoi que ce soit d'autre et en particulier la structure de ma base de données.
Il faut simplement prévoir ce champ dès le départ et l'intégrer aux scripts de création/modification et aux formulaires.
Ca permet d'économiser beaucoup de place en base et de conserver une simplicité quand il s'agit de champs qui sont utilisés que pour une très faible population de produits ou d'articles.