Bonjour, Bonsoir

Je souhaite attiré votre attention sur un problème que je rencontre
quand je dit "Multi données" c'est que je souhaite avec plusieurs données en un seule champs par exemples : un système d'amis (ou l'on a plusieur id en un champ) je cherche mais ne trouve pas la solution . Merci de votre aide n'ésitez pas à me demmander si je ne suis pas assez précis , cordialement Liam

8 réponses


Tu peux utiliser la fonction explode()de PHP pour parser tes données.
Imaginons tu récupères un champ dont la valeur est :

$data['id'] = "id,id,id,id,id"
$id = explode($data['id'],",");
foreach ($item as $id) { ... }
LiamM
Auteur

Ah merci je vais essayer cette solution

Je cherchais pareil mais je ne
comprend pas trop explode. Un exemple?

explode te permet de séparer plusieurs éléments d'une chaine de caractère selon un paramétre.

$chaine = "bonjour comment vas tu ?";
$exploded_chaine = explode($chaine, " "); // ici le caractère est l'espace
foreach($item as $exploded_chaine)
{
    echo $item; 
}

Cet exemple va afficher bonjour, comment, vas, tu, ? (distinctement)

@Benjamin, il me semble que tu inverses les valeurs dans le foreach

foreach ($exploded_chaine as $item)

et dans ton premier exemple

$items = explode($data['id'],",");
foreach ($items as $id) { ... }

@Huggy oui merci de corriger je fais souvent l'erreur malheuresement ! Trop de temps sans php :p

Sinon, c'est loin d'être optimal de genre de chose... Tu pourrais au moins stocker un tableau sérialisé en base de données. :-)

// Sérialisation
$variableSerialisable = [
    1, 2, 3, 4, 5, 6, 7
];

// Cette valeur pourrait être stockée dans la base de données (sur une colonne).
serialize($variableSerialisable); 

/*  ---------------------------------- */

// Désérialisation
$variableDeserialise = unserialize($taVariableSerialise); // Les données extraites d'une source de données (la BdD)
foreach ($variableDeserialise as $id) { /* tout ce que tu as envie...*/ }

Ainsi, tu pourrais mettre des données beaucoup plus complexe.

Je te recommende pas vraiment de faire ça, mais tu peux toujours le faire, c'est possible. Il y a néamoins des solutions plus orienté vers un schéma de base de données plus élaboré. Ça pourrait être contraignant pour les accès concurrent de plusieurs utilisateurs...

Je t'invite à consulter :
http://php.net/manual/fr/function.serialize.php
http://php.net/manual/fr/function.unserialize.php

Bonjour,
plusieurs solutions:

  • Utiliser le type SQL "SET" qui te permet de lister une liste de valeurs possibles
  • Sérialiser un objet JSON pour stocker des objets complexes, ou plus simplement un tableau ou une liste de valeurs basique.