Page 1 sur 1

MYSQL Mise a jour de toute une table

Posté : 02 févr. 2009, 10:40
par christele
Bonjour,

J'ais une simple table dont voici la structure

Code : Tout sélectionner

// NOM `foAva` CREATE TABLE IF NOT EXISTS `foAva` ( `AvaIndex` mediumint(8) unsigned NOT NULL auto_increment, `AvaBloque` varchar(4) NOT NULL default ' ', `AvaTexte` varchar(120) NOT NULL default ' ', PRIMARY KEY (`AvatIndex`), UNIQUE KEY `AvaTexte` (`AvaTexte`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1887 ;
Sur cette table pour tout les enregistrements
Il me faut lire en particulier AvaTexte Lui faire un petit
$AvaTexte= stripslashes($row['AvaTexte']);
Puis important
$AvaTexte= str_replace("Académie","Organisation",$AvaTexte);
et réécrire ce $AvaTexte Voila je ne sais pas quelle est la meilleure syntaxe pour cela,
malgrés mes recherches :shock:

Posté : 02 févr. 2009, 11:00
par Ripat
Le plus simple est d'utiliser les fonctions STRING de MySQL pour faire le changement en une seule requête.

Code : Tout sélectionner

UPDATE `foAva` SET `AvaTexte` = REPLACE(`AvaTexte`, 'Académie','Organisation');
http://dev.mysql.com/doc/refman/5.0/en/ ... on_replace

Avant de faire l'update, vérifie si tu as le résultat attendu avec un:

Code : Tout sélectionner

SELECT REPLACE(`AvaTexte`, 'Académie','Organisation') FROM `foAva`;

Posté : 02 févr. 2009, 11:12
par christele
Mille mercis a toi, c' est trop génial,

Je voudrais te poser une question, a ce sujet, pour étre plus general, quand je parcour toute une table avec une action a réaliser par exemple incrementer une valeur compteur ??
Est-ce que c' est le mêm genre de formulation :shock:

En attendant mille mercis a toi :D

Posté : 02 févr. 2009, 13:56
par Ripat
Les fonctions MySQL te permettent effectivement de faire un certain nombre de choses hors PHP mais si tu dois régulièrement modifier l'ensemble d'une table, il y a sans doute un problème de conception de ta base de données ou de ton application PHP qui la modifie.

Posté : 03 févr. 2009, 12:07
par christele
Les fonctions MySQL te permettent effectivement de faire un certain nombre de choses hors PHP mais si tu dois régulièrement modifier l'ensemble d'une table, il y a sans doute un problème de conception de ta base de données ou de ton application PHP qui la modifie.
Merci encore a toi,
Ce n' est pas pour me justifier, mais je reprend un gros projet, et je récupéres toutes les anciennes tables, c' est pour cela, que les rationalisant, j'ais de nombreux outils a faire pour transcrire ... :oops:

En fait j'emploies souvent ces formes ... qu' en penses tu ? :shock:

Code : Tout sélectionner

<HTML><BODY> <?PHP $Flag1=mysql_connect($Serveur,$User,$Mdp); $Flag2=mysql_select_db($MaBase); $result=mysql_query( "UPDATE fomessages SET MsgTexte=REPLACE(`MsgTexte`,'ddd','ffff'), MsgTexte=REPLACE(`MsgTexte`,'lo','la'), MsgTexte=REPLACE(`MsgTexte`,'</a>','</b>'), MsgTexte=REPLACE(`MsgTexte`,'xxx">','yyyy') "); mysql_close(); ?> </BODY></HTML>
J' ais une question au passage qui n'a rien a voir, pourquoi je n'arrives pas a me mettre un avatard :shock:

Posté : 03 févr. 2009, 12:22
par albat
J' ais une question au passage qui n'a rien a voir, pourquoi je n'arrives pas a me mettre un avatard :shock:
http://www.phpfrance.com/forums/voir_sujet-12542.php
http://www.phpfrance.com/forums/voir_sujet-6546.php

Posté : 03 févr. 2009, 15:08
par christele
J' ais une question au passage qui n'a rien a voir, pourquoi je n'arrives pas a me mettre un avatard :shock:
http://www.phpfrance.com/forums/voir_sujet-12542.php
http://www.phpfrance.com/forums/voir_sujet-6546.php
Merci pour l'info :D

Posté : 03 févr. 2009, 16:53
par Ripat
En fait j'emploies souvent ces formes ... qu' en penses tu
Ça devrait le faire. Tu n'es pas obligé(e?) de passer par PHP. Tu peux aussi utiliser un client mysql ou phpmyadmin.

Posté : 03 févr. 2009, 19:26
par christele
Ça devrait le faire. Tu n'es pas obligé(e) de passer par PHP. Tu peux aussi utiliser un client mysql ou phpmyadmin.
Je suis obligée dans la mesure ou je gardes trace de mes outils, et au moins je fais tourner mes outils en local et sur le site ça va trés vite :lol:

Merci a toi de ton aide