questions simples manipulation de chaîne ..

Eléphant du PHP | 73 Messages

11 août 2011, 15:23

bonjour,

je ne saurais trop décrire ce que je désire faire avec les bons mots (changer un caractère ou en ajouter un dans une chaine)

actuellement j'ai une base (MySQL) avec un de mes champs au format varchar classique.
dans ce champ j'ai une série d'ID (séparateur : un espace), exemple :

Code : Tout sélectionner

nom valeur id_machin 1 3 6 8 11
je dois faire une requête d'update de cette valeur en la comparant, et j'aimerais supprimer une valeur dedans, ou en rajouter.
par exemple passer de "1 3 6 8 11" à "1 8 11" ou encore "1 3 4 5 8 11 14" etc.

quelles fonctions php (ou mysql) me permettent de faire cela ?
je connais str_replace pour remplacer un bout de la chaine, mais comment faire le reste ?

Autrement (2nde question), je sais que je peux me servir d'un tableau pour extraire la valeur par exemple avec un :

$exploded = explode("", $champ_valeur);
et récupérer mes valeurs avec un $exploded[1], $exploded[11] etc.. par exemple.
c'est peut-être mieux, mais à ce moment là, comme faire pour re-générer une nouvelle variable à partir des valeurs du tableau ?

par exemple, si "avant" j'ai :

$exploded['1']
$exploded['3']
$exploded['6']
$exploded['8']
$exploded['11']

après avoir retiré/rajouter des valeurs dans le tableau, j'ai :

$exploded['8]'
$exploded['11']
$exploded['13']

comment fais-je pour re-génrer une variable de type $var = '8 11 13' à partir des valeurs du tableau ? avec une boucle for tout simplement ?

merci !

ViPHP
ViPHP | 2577 Messages

11 août 2011, 15:44

Bonjour,

La fonction implode est le pendant d'explode pour faire une chaine à partir d'un tableau.

Sur le plan de la conception, il serait mieux de faire une table avec les valeurs de ta chaine en mettant un id par enregistrement et en ajoutant l'identifiant qui te permet de retrouver ta chaine.

Eléphant du PHP | 73 Messages

11 août 2011, 23:46

merci, la fonction implode a résolu mon problème.

malgré ça si quelqu'un a une idée pour la question 1) simplement pour ma connaissance personelle

ViPHP
xTG
ViPHP | 7331 Messages

12 août 2011, 08:44

Pour faire ton update faut d'abord rappatrier les données sous PHP, les traiter et faire les mises à jour.
En gros : SELECT -> explode -> maj -> implode -> update