IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Application de correction de BDD


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut Application de correction de BDD
    Bonjour à tous,

    Je suis débutant en php et je voudrais créer une application qui puisse corriger ma base de données.

    Je vous explique. Je travail sur une base de donnée,dont un champ de la base de donnée est le numero de téléphone, qui a été édité par plusieurs personnes différentes et donc ces personnes n'ont pas écrit les numéros avec le même format. Ex "06.31.56.89.52 ou 06-45-85-98-56 ou encore 06 89 56 23 12 02...)
    Sachant qu'il y a plus de 5000 personnes dans la base de donnée je veux pas tout modifié à la main.

    J'ai un script qui me permet de me connecter à ma bdd et qui récupère mes numeros de téléphone.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <html>
    
    	<head>
    
    	<title>Conversion BDD</title>
    
    	</head>
    
    <body>
    
    <table border="1" cellpadding="0" cellspacing="0">
    
    <tr>
    
    <th>Réctification des erreurs dans la BDD</th>
    
    <th>BDD</th>
    
    </tr>
    
    <?php
    
    // Déclaration des paramètres de connexion
    $host = localhost;
    
    $user = Login;
    
    $bdd = Nom_de_la_base_de_donnees;
    
    $passwd  = Mot_de_passe;
    
    // Connexion au serveur
    mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
    
    mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
    
    // Creation et envoi de la requete
    $query = "SELECT telephone FROM bdd";
    
    $result = mysql_query($query);
    
    // Recuperation des resultats
    if (!mysql_fetch_row($result)) {
    echo "Aucun enregitrement ne correspond\n";
    
    }
    
    else {
    	while($row = mysql_fetch_row($result)){
    		
    		$telephone = $row[0];
    
    		if( et là je sais pas quoi mettre
    		
    
    	}
    }
    
    // Deconnexion de la base de donnees
    mysql_close();
    
    ?>
    
    </tr>
    
    </table>
    
    </body>
    
    </html>
    Mais après avoir récupérer les numéros de téléphone je ne vois pas comment je peux les analyser un par un et s'ils sont du mauvais format les faire changer, sachant que le bon format serait (0674859637) c'est a dire sans espace ni caractère séparateur.

    Est ce que quelqu'un pourrait m'aider svp....

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mars 2006
    Messages : 19
    Par défaut
    Bonjour,

    Essaye çà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    if( strlen($telephone) != 10) {
    	$telephone = $telephone[0].$telephone[1].$telephone[3].$telephone[4].$telephone[5].$telephone[6].$telephone[8].$telephone[9] ;
    }?>
    La valeur $telephone aura un numéro de téléphone sur 10 caractères.
    Par contre, si quelqu'un à mis 01/01/01/-01/+-01... c'est sur, çà passe pas !

    Bon, d'accord, c'est super tiré par les cheveux ! ... Il doit certainement être possible de faire çà avec des expressions régulières, beaucoup plus fiable que ma méthode, mais loin d'être dans mes cordes !
    Tu peux remplacer ce que j'ai fait par une suite de substr() aussi. Cà marche tout aussi bien, voire mieux

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2008
    Messages : 229
    Par défaut
    Bonjour,

    Tu peux utiliser les expressions régulières pour faire ce genre de manipulation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $num_tel = "06 07-14 -14.45";
    $num_tel = preg_replace('/[^0-9]/', '', $num_tel); //remplace tout ce qui n'est pas un chiffre par rien
    echo $num_tel; //donne 0607141445

    Voilà, à toi de l'adapter à ton code.

  4. #4
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut
    Merci.

    J'ai opté pour ceci donc au final.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    while($row = mysql_fetch_row($result)){
     
    		$telephone = $row[0];
    		$nom = $row[1];
     
    		for($i=0;$i<sizeof($telephone);$i++) { // Tant que $i est inferieur au nombre d'elements du tableau.
     
    			$telephone[$i]= preg_replace('/[^0-9]/', '', $telephone[$i]); // Remplace tout ce qui n'est pas un chiffre par rien
    		    // Lancement de la requete 
    			$sql = 'UPDATE bdd SET telephone="'.$telephone[$i].'" WHERE nom="'.$nom[$i].'"';
    			mysql_query($sql) or die('erreur SQL'.$sql.mysql_error()); 
    		} 
     
     
    	}
    Vous en pensez quoi?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2008
    Messages : 229
    Par défaut
    Je pense que c'est bon mais c'est à toi de nous dire si cela fonctionne et si cela correspond à ton besoin.

    Sinon, content d'avoir pu aider.

    Voilà.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Faire évoluer une application conçue avec une bdd postgres
    Par junior222 dans le forum Administration
    Réponses: 0
    Dernier message: 28/07/2014, 17h11
  2. application Builder C++ avec BDD access.
    Par débutant11 dans le forum C++Builder
    Réponses: 3
    Dernier message: 09/12/2010, 02h50
  3. Application généree depuis une BDD - Relations
    Par Anified dans le forum Flex
    Réponses: 2
    Dernier message: 08/07/2008, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo