Actualiser un champ dans d'une table

WRInaute discret
Je voudrais que tout les champs A de ma table se voient ajouter quelque chose devant et derrière.

Par exemple si la valeur d'un champ A est "Pierre", je veut que ça devienne : "Les jeux de Pierre sont pas chères", si c'est Leo, "Les jeux de Leo sont pas chères", etc.

Je veut donc rajouter devant le champ A "Les jeux de" et mettre à la fin "sont pas chères".

Voici ce que j'ai essayé :

<?php
$requete = mysql_query("SELECT * FROM `nom`");
while($ligne = mysql_fetch_array($requete)) {
$nouveau_texte = "Les jeux de ". $ligne["nom"] ." sont pas chere";
mysql_query("UPDATE `nom` SET `nom`='". $nouveau_texte ."' WHERE id=".$ligne["id"]);
}
?>

Mais ça ne marche pas.
Quelqu'un voit d'où vient le problème et ce qu'il faudrait faire ?

Merci !
 
WRInaute accro
Bonjour

essaie
Code:
<?php
$requete = mysql_query("SELECT * FROM `nom`");
while($ligne = mysql_fetch_array($requete)) {
$nouveau_texte = "Les jeux de ". $ligne['nom'] ." sont pas chers";
mysql_query("UPDATE `nom` SET `nom`='". $nouveau_texte ."' WHERE id=".$ligne['id']);
}
?>
 
WRInaute discret
Non, ça ne marche pas non plus : comme précédemment ça modifie le premier champ en remplaçant $ligne['nom'] par "Les jeux de sont pas chères" et pour tout les autres ça ce contente de les effacer sans rien ajouter à la place.

Ça doit être la façon de faire qui n'est pas bonne, mais mes faibles connaissances m'empêchent de voir comment bien m'y prendre différemment :)
 
WRInaute occasionnel
Es ce que la colonne dans ta table s'appelle bien "Nom" ?

Car apparemment, il n'arrive pas à lire le contenu de cette colonne...
 
WRInaute discret
En fait non c'était pour l'exemple.

Voici le bon :
$requete = mysql_query("SELECT * FROM `tsqq`");
while($ligne = mysql_fetch_array($requete)) {
$nouveau_texte = "Tu sais que ".$ligne["nom"]." quand...";
mysql_query("UPDATE `tsqq` SET `tsqq`='".$nouveau_texte."' WHERE id=".$ligne['id']);
}

Mais par contre oui, le champ tsqq à le même nom que la table qui s'appelle aussi tsqq.

Sinon il n'y a pas une autre façon de faire ? En allant directement dans la base de donnée par exemple ?
 
WRInaute occasionnel
euh a mon avis non, tu es limité avec sql pour faire ce genre de chose (peut etre que je me trompe),

une chaine while et php est la meilleur solution, surtout que c'est rapide.




[modéré OTP]
 
WRInaute accro
pas besoins de php pour ça un truc du genre concat va très bien dans phpmyadmin
(vérifie la syntaxe avant, et met un where id = truc pour faire l'essaie sur un seul champ avant de torpiller toute la table ;-)

UPDATE `matable` SET `monchamp`= CONCAT('début du texte', monchamp)
UPDATE `matable` SET `monchamp`= CONCAT(monchamp, 'fin du texte')


nota le nom du champ = le nom de la table c'est pas ça ton problème ?
 
WRInaute discret
Je pense que le problème vient de ma concaténation qui est mal faite.

J'ai fait : tsqq = 'Tu sais que' + tsqq
Mais ça me remplace le champ tsqq par 0.

Y a-t-il une autre syntaxe possible ?
 
Discussions similaires
Haut