Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/08/2006, 21h27   #1
Invité de passage
 
Inscription : avril 2005
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 4
Points : 1
Points : 1
Par défaut [SQL] Remplacement de chaîne de caractères

Bonjour,

Mon site et mon forum ayant déménagés. Les liens relatifs à des messages de mon forum sont morts.

Existe il un moyen simple de remplacer la chaine "login.free.fr" par "www.monsite.com" soit en modifiant les posts dans la BDD ou "un peu de code" qui fera la conversion à chaque chargement de la page ?

Merci
squal29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2006, 21h57   #2
Membre confirmé
 
Avatar de frol
 
Inscription : mars 2005
Messages : 288
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mars 2005
Messages : 288
Points : 268
Points : 268
Envoyer un message via AIM à frol Envoyer un message via MSN à frol Envoyer un message via Skype™ à frol
peut être en sql voir l'autre forum
sinon
on fait une requête genre where le champ is '%texte1%'
puis str_replace
puis une requête d'update
frol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2006, 22h12   #3
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Ca devrait faire l'affaire:

Code :
1
2
3
4
5
$sql = mysql_query("SELECT un_id_de_reconnaissance, le_champ_en_question FROM table WHERE le_champ_en_question LIKE '%login.free.fr%'");
while (list($id, $champ) = mysql_fetch_array($sql)) {
   $chaine = str_replace("login.free.fr", "www.monsite.com", $champ);
   $sql2 = mysql_query("UPDATE table SET le_champ_en_question = '".$chaine."' WHERE id_de_reconnaissance = ".$id);
}
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 00h49   #4
Invité de passage
 
Inscription : avril 2005
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 4
Points : 1
Points : 1
Merci de votre aide

Si çà peut aider quelqu'un voici le code que j'ai utiliser :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
	$cpt = 0;
 
	$dbhost = '**********';
	$dbname = '**********';
	$dbuser = '**********';
	$dbpasswd = '**********';
 
	$connect = mysql_connect($dbhost, $dbuser, $dbpassword);
	$db = mysql_select_db($dbname);
 
	$sql = "SELECT id, champ FROM table
            WHERE champ LIKE '%login.free.fr%'";
 
	$req = mysql_query($sql) or die(mysql_error());
 
while ( $list = mysql_fetch_array($req)) { 
	$cpt= $cpt + 1;
	$id = $list['id'];
	$text = $list['champ'];
 
	$chaine = str_replace("login.free.fr", "www.monsite.com", $text); 
	$chaine2 = str_replace("'", "\'", $chaine); 
 
	$sql_upd = "UPDATE table SET champ = '" . $chaine2 . "' WHERE id = " . $id;
 
	$req_upd = mysql_query($sql_upd) or die(mysql_error());
 
	echo "Enreg n " . $id . " mis à jour<br>" . $text . "<br><br>" . $chaine2 . "<br><br><br><br>";
}
 
echo "<strong>" . $cpt . " enreg mis à jour<strong>"
squal29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h45.


 
 
 
 
Partenaires

Hébergement Web