update d'un champs dans toute la base

karkour
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: 2 Oct 2006

update d'un champs dans toute la base

Message le Dim Déc 03, 2006 16:59

Bonjour à tous,

un petit problème sur un script fait maison :

Alors voila, j'ai une base de donnée déjà remplit et pour une affaire de facilité je voudrai mettre le contenu d'un champs de toute la base en majuscule et nettoyage des accents, parenthèse guillemets etc etc .

j'ai fais un script et au lieu de changer le contenu de chaque champs un par un , il me change le contenu de tous les champs avec le contenu du premier champs.

ce qui fait que le contenu du champs de toute la base est le même.

exemple :

voici ce que je voudrai que ça fasse :

id1
champs = à l'école ==>transfromé en champs = A L ECOLE

id2
champs = général (major ) ==>transfromé en champs = GENERAL MAJOR

id3
champs = mon "<ah bon>" ==> transfromé en champs = MON AH BON

mais avec le script ci_dessous je me retrouve avec :

id1
champs = à l'école ==>transfromé en champs = A L ECOLE

id2
champs = général (major ) ==>transfromé en champs = A L ECOLE

id3
champs = mon "<ah bon>" ==> transfromé en champs = A L ECOLE



mon code :

Code: Tout sélectionner
<?php
require ("config.php");
@ $db = mysql_pconnect ("$dbhost","$dbuser","$dbpasswd")or die ("erreur de connexion");
mysql_select_db("$dbname",$db)or die ("erreur de connexion base");
$query="SELECT champs FROM table where champs !=''";
$result=mysql_query($query) or die();
$num_results = mysql_num_rows($result);
for ($i=0;$i<$num_results;$i++)
{
$row=mysql_fetch_array($result);   

$find = array('  ',
      '&quot;',
      '&',
      '\r\n',
      '\n',
      '/',
      '\\',
      '+',
      '<',
      '(',
      ')',
      '"',
      '>',
      'é',
      'è',
      'ë',
      'ê',
      'É',
      'È',
      'Ë',
      'Ê',
      'í',
      'ì',
      'î',
      'ï',
      'Í',
      'Ì',
      'Î',
      'Ï',
      'ó',
      'ò',
      'ô',
      'Ó',
      'Ò',
      'Ô',
      'á',
      'à',
      'â',
      'Á',
      'À',
      'Â',
      'ú',
      'ù',
      'û',
      'Ú',
      'Ù',
      'Û',
      'ß',
      'ç',
      'ü',
      'Ü',
      'ä',
      'Ä',
      'ö',
      'Ö',
      '\'',
      '--',
      '-',
      'Ç',
      '_',
      ',');


  $remplace = array(' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      'E',
      'E',
      'E',
      'E',
      'E',
      'E',
      'E',
      'E',
      'I',
      'I',
      'I',
      'I',
      'I',
      'I',
      'I',
      'I',
      'O',
      'O',
      'O',
      'O',
      'O',
      'O',
      'A',
      'A',
      'A',
      'A',
      'A',
      'A',
      'U',
      'U',
      'U',
      'U',
      'U',
      'U',
      'SS',
      'C',
      'U',
      'U',
      'A',
      'A',
      'O',
      'O',
      ' ',
      ' ',
      ' ',
      'C',
      ' ',
      ' ');

$findes = array('  ');
$remplacees = array(' ');
      $sil=$row["champs"];
      $sil = strtoupper($sil);
      $sil=str_replace($find,$remplace,$sil);
      $sil=str_replace($findes,$remplacees,$sil);
             
$querys = "update table set champs ='$sil'"

}
mysql_close($db);
?>



merci de votre aide je suis ko .

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2455
Inscription: 30 Aoû 2002

Message le Dim Déc 03, 2006 17:32

Code: Tout sélectionner
$find = array('  ',...);
$remplace = array(' ',...);

while ($row=mysql_fetch_array($result))
{
$sil=str_replace($find,$remplace,strtoupper($row["champs"]));             
mysql_query ("update table set champs ='".$sil."' where champs='".$row["champs"]."'");
}

karkour
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: 2 Oct 2006

Message le Dim Déc 03, 2006 17:56

merci jeroen,

pour reprendre mon code d'après toi, il faudrait que je fasse ça :

Code: Tout sélectionner
<?php
require ("config.php");
@ $db = mysql_pconnect ("$dbhost","$dbuser","$dbpasswd")or die ("erreur de connexion");
mysql_select_db("$dbname",$db)or die ("erreur de connexion base");
$query="SELECT champs FROM table where champs !=''";
$result=mysql_query($query) or die();
$num_results = mysql_num_rows($result);
while ($row=mysql_fetch_array($result))
{
$find = array('  ',
      '&quot;',
      '&',
      '\r\n',
      '\n',
      '/',
      '\\',
      '+',
      '<',
      '(',
      ')',
      '"',
      '>',
      'é',
      'è',
      'ë',
      'ê',
      'É',
      'È',
      'Ë',
      'Ê',
      'í',
      'ì',
      'î',
      'ï',
      'Í',
      'Ì',
      'Î',
      'Ï',
      'ó',
      'ò',
      'ô',
      'Ó',
      'Ò',
      'Ô',
      'á',
      'à',
      'â',
      'Á',
      'À',
      'Â',
      'ú',
      'ù',
      'û',
      'Ú',
      'Ù',
      'Û',
      'ß',
      'ç',
      'ü',
      'Ü',
      'ä',
      'Ä',
      'ö',
      'Ö',
      '\'',
      '--',
      '-',
      'Ç',
      '_',
      ',');


  $remplace = array(' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      ' ',
      'E',
      'E',
      'E',
      'E',
      'E',
      'E',
      'E',
      'E',
      'I',
      'I',
      'I',
      'I',
      'I',
      'I',
      'I',
      'I',
      'O',
      'O',
      'O',
      'O',
      'O',
      'O',
      'A',
      'A',
      'A',
      'A',
      'A',
      'A',
      'U',
      'U',
      'U',
      'U',
      'U',
      'U',
      'SS',
      'C',
      'U',
      'U',
      'A',
      'A',
      'O',
      'O',
      ' ',
      ' ',
      ' ',
      'C',
      ' ',
      ' ');

$findes = array('  ');
$remplacees = array(' ');
      $sils=$row["champs"];
      $sil = strtoupper($sils);
      $sil=str_replace($find,$remplace,$sil);
      $sil=str_replace($findes,$remplacees,$sil);
            
$querys = "update table set champs='$sil' where user_sil='$sils'"

}
mysql_close($db);
?>


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Dim Déc 03, 2006 18:22

le champs est un ordonné, pour un update en intersection, il faut aussi renseigner l'abysse

rog

karkour
WRInaute discret
WRInaute discret
 
Messages: 87
Inscription: 2 Oct 2006

Message le Dim Déc 03, 2006 19:39

c'est bon j'ai reglé le probleme en integrant le while dans le for comme le suggerait jeroen .

merci ça m'a beucoup aidé :wink: .


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités