Page 1 sur 1

questions simples manipulation de chaîne ..

Posté : 11 août 2011, 15:23
par olivierg
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 !

Re: questions simples manipulation de chaîne ..

Posté : 11 août 2011, 15:44
par Mazarini
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.

Re: questions simples manipulation de chaîne ..

Posté : 11 août 2011, 23:46
par olivierg
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

Re: questions simples manipulation de chaîne ..

Posté : 12 août 2011, 08:44
par xTG
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