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

PHP & Base de données Discussion :

Mise a jour de champ


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Par défaut Mise a jour de champ
    Bonjour à tous,

    Je gère une base mysql avec une table 'personnes' avec un champ 'num_tel' (varchar de 32 caractères) dans cette table où les utilisateurs ont saisi les N° de tel de toutes les façons possibles (les 10 n° se touchent, séparation avec un point, un tiret, un espace, etc ....).
    C'est la pagaille ... car je n'avais pas mis de contrôle du format à la saisie !
    Je souhaite faire une requête UPDATE pour mettre l'ensemble des n° déjà saisis au même format, soit 12.34.56.78.90
    J'ai essayé tous types de fonction, de requête, de wordwrap, de pre_replace, ... mais rien ne fonctionne correctement.
    J'ai déjà passé une journée sur ce souci et je n'y arrive pas.

    L'un de vous peut-il m'aider ... (pas de PDO), quelque chose de tout simple.

    Merci
    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    il est préférable de mettre des espaces plutôt que les points.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function format_tel($tel)
    {
    	$tel	= preg_replace( '#([^0-9\+])?#Ui','',$tel); // supprime tout formatage précédent (tout ce qui n'est pas chiffre ou +)
    	$tel	= preg_replace( '#((\+[0-9]{2})([0-9]))?([0-9]{2})#Ui', '$2 $3 $4 ', $tel); // prend en compte un indicatif à 2 chiffres (+33...)
    	$tel	= trim(preg_replace('#(\s+)#', ' ',  $tel));		// supprimer les espaces multiples
    	return $tel;
    }
    utilisation :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
    $tel_formate = format_tel($tel_en_vrac); 
    ?>

  3. #3
    Membre confirmé
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Par défaut suite de la discussion
    Bonjour,

    Merci pout ta réponse.

    J'ai donc inclus ta fonction dans ma bibliothèque de fonctions 'fonctions.php' dont je te joins le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    function format_tel($tel) {     								  // selon le forum
    		$tel	= preg_replace( '#([^0-9\+])?#Ui','',$tel); 			// supprime tout formatage précédent (tout ce qui n'est pas chiffre ou +)
    		$tel	= preg_replace( '#((\+[0-9]{2})([0-9]))?([0-9]{2})#Ui', '$2 $3 $4 ', $tel	);  // prend en compte un indicatif à 2 chiffres (+33...)
    		$tel	= trim(preg_replace('#(\s+)#', ' ',  $tel));																	// supprimer les espaces multiples
    		return $tel;
    		}

    Puis j'ai inclus dans mon fichier php la ligne de mise à jour, faisant appel à ta fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
     
    		include_once 'fonctions.php';
     
    		$my_sql = "UPDATE personnes SET tel_fixe = format_tel($tel_fixe)"; 
    		$result = mysqli_query($my_cnx, $my_sql) or die ('Erreur ici : '.mysqli_error($my_cnx) );
    Et lorsque je lance le formulaire, j'ai un GROS message dont je t'envoie la copie d'écran en pj !!!

    Nom : 2018-04-07 17_40_17-[E__wamp64_www_CRUD_Annuaire_paroissial_Menu_Personnes.php_] - UltraEdit 64-.jpg
Affichages : 78
Taille : 85,0 Ko

    Peut-être est-ce que j'ai mal compris les fonctions, la requête UPDATE ???? c'est sur !

    Merci de ton aide.
    Bien cordialement
    Maub85

  4. #4
    Invité
    Invité(e)
    Par défaut
    1- il faut faire une requête pour toutes les lignes
    2- puis pour chaque ligne while(...) : récupérer l'id et tel_fixe
    Puis faire l'update :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		$my_sql = "UPDATE personnes SET tel_fixe = '".format_tel($row['tel_fixe'])."' WHERE id = ".$row['id']." ";

  5. #5
    Membre confirmé
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Par défaut Merci
    Merci a mon interlocuteur et BRAVO.
    ça marche parfaitement.

    Cordialement
    Maub85

  6. #6
    Membre confirmé
    Homme Profil pro
    en retaite
    Inscrit en
    Mai 2010
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : en retaite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 164
    Par défaut Bravo
    Merci.
    Ça fonctionne parfaitement.
    Cordialement
    Maub85

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

Discussions similaires

  1. mise a jour des champs
    Par nana 69 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/08/2008, 16h09
  2. Mise a jour de champ
    Par jawed dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 23/07/2007, 09h11
  3. mise a jour des champs d un formulaire
    Par jesuisjosita dans le forum IHM
    Réponses: 1
    Dernier message: 03/02/2007, 17h51
  4. Unité, Dizaine, mise a jour des champs
    Par XCCUBE dans le forum Access
    Réponses: 2
    Dernier message: 11/01/2007, 09h15
  5. Réponses: 3
    Dernier message: 23/08/2006, 15h27

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