8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

J'utilise WordPress et je n'arrive pas à comprendre comment fonctionne les données sérialisées dans la BDD.
Si on va dans la table "postmeta", les meta_key "_wp_attachment_metadata" ont leur champ meta_value sous cette forme :
a:5:{s:5:"width";i:580;s:6:"height";i:375;s:4:"file";s:75:"2013/02/canape-3-4-places-design-gris-lincoln-20866-6_660_427_0-580x375.jpg";s:5:"sizes";a:2:{s:9:"thumbnail";a:4:{s:4:"file";s:75:"canape-3-4-places-design-gris-lincoln-20866-6_660_427_0-580x375-150x150.jpg";s:5:"width";i:150;s:6:"height";i:150;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:{s:4:"file";s:75:"canape-3-4-places-design-gris-lincoln-20866-6_660_427_0-580x375-300x193.jpg";s:5:"width";i:300;s:6:"height";i:193;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_meta";a:10:{s:8:"aperture";i:0;s:6:"credit";s:0:"";s:6:"camera";s:0:"";s:7:"caption";s:0:"";s:17:"created_timestamp";i:0;s:9:"copyright";s:0:"";s:12:"focal_length";i:0;s:3:"iso";i:0;s:13:"shutter_speed";i:0;s:5:"title";s:0:"";}}


Donc si maintenant j'utilise la fonction add_post_meta() et que je décide de stocker dans le champ meta_value des données sérialisées, comment je procède ensuite pour faire une requête SQL dessus?

Exemple (si ça peut aider) : Je stocke dans ma meta_value: la date et l'identifiant d'un utilisateur.
Comment ensuite je récupère la liste des utilisateurs (id qui est stocké dans la meta_value) associés à un post et classés par date (date qui est stockée dans la même meta_value que l'id)?

Merci d'avance pour vos éclaircissements ! Smiley smile

PS: Si ce n'est pas clair (ce qui est fort probable Smiley biggol ) n'hésitez pas à me redemandez une explication, j'essayerais de reformuler.
Modifié par Raphi (13 Mar 2013 - 17:42)
Merci pour ta réponse @lethehau.
En effet j'avais vu les fonctions serialize et unserialize.
Disons que mon problème est plutôt de savoir quelle est la meilleure méthode pour stocker en base de données dans WordPress quand on a des informations qui concernent des meta_post mais qui ne concernent pas des posts.

Par exemple si on créer une fonction qui permet de liker un article et qu'on veux connaître l'heure et la date du like.
On va créer une meta_post qui stocke l'id du post et en meta_value l'id de l'utilisateur qui à liké l'article. Seulement on a aucun champ disponible pour stocker l'heure et la date du like.
Dans ce cas précis je me suis dit que peut-être les données sérialisées seraient une bonne idée. Mais à priori non...

J'ai trouvé cet article qui traite des données serialisées dans WordPress :
http://wpgarage.com/tips/data-portability-and-data-serialization-in-wordpress/

Et comme à priori la meilleure solution me concernant est de créer mes propres tables, voici l'article qui pourra peut-être servir :
http://blog.nicolas-juen.fr/2011/12/04/les-tables-personnalisees-dans-wordpress/