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 :

Insertion automatique d'un chiffre dans un nombre


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Insertion automatique d'un chiffre dans un nombre
    Bonjour,

    Je suis tout nouveau sur le site, alors déjà bonjour à tout le monde et merci par avance de votre aide !

    Voila, j'ai un petit problème, j'ai une base avec une table dont un champ numérique à 8 chiffres du style : 11601205

    En fait ces nombres sont des identifiants clients pour ma boîte, sauf que la semaine dernière un nouveau logiciel de comptabilité est arrivé et a modifié le nombre de chiffres de 8 à 9 chiffres.

    Le chiffre en plus se trouve entre le 5è et le 6è chiffre et doit être un 0.

    En reprenant mon exemple 11601205 deviendrait 116010205.

    J'ai essayé de voir en sql, mais pas possible, en php je sais que ca existe, notamment avec la fonction str ou autre, mais j'avou m'y perdre un peu avec ces fonctions.

    Ah, pour ceux qui se demandent pourquoi je le fais pas tout bêtement à la main, c'est qu'il y en a plus de 2000, donc un script php m'intéresse plus ! ;-)

    Merci pour votre aide et bonne journée à tous !!

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Moi je ferais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $chaine = "11601205";
    $debut = substr($chaine,0,5);
    $fin = substr($chaine,5,(strlen($chaine) - strlen($debut)));
    $debut .= 0;
     
    $chaine = $debut.$fin;
    Mais il y a probablement plus optimisé.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    En sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select '11601205', concat(substring('11601205', 1, 5), '0', substring('11601205', 6)) as resultat
    Et si ça se fait sur un 'select', pourquoi pas sur un update ?

  4. #4
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse, la syntaxe SQL m'intéresserait beaucoup plus car mon patron en aurait besoin pour un autre système ou il serait très délicat de taper dans la base en php.

    Par contre, comment faire en sql pour spécifier l'ensemble des champs et non un select sur un seul champ ?

    la table est equitrack et le champ num_rls, au cas où ;-)

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Vite fait, je pars au machon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    update equitrack
    set num_rls = concat(substring(num_rls, 1, 5), '0', substring(num_rls, 6)
    ATTENTION ! A essayer sur un fichier de test.

  6. #6
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Même joeur joue encore ! lol
    Bien essayé mais y a une petite erreur (equitrack14052007 est une sauvegarde d'une ancienne table pour faire le test) :

    Erreur
    requête SQL:

    UPDATE equitrack14052007 SET num_rls = concat( substring( num_rls, 1, 5 ) , '0', substring( num_rls, 6 )

    MySQL a répondu:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2

  7. #7
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,
    Il manque une parenthèse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    concat( substring( num_rls, 1, 5 ) , '0', substring( num_rls, 6 ))

  8. #8
    Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut MERCI !!!
    Ca marche nickel !!

    En effet il manquait juste une ) , j'avou que j'aurais pu chercher un peu plus lol

    En tout cas merci beaucoup, non seulement rapide, mais en plus précis !

    A bientôt sans doute et bonne journée à tous !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/01/2015, 21h03
  2. Réponses: 3
    Dernier message: 03/11/2006, 15h30
  3. Réponses: 11
    Dernier message: 18/07/2006, 11h03
  4. insertion automatique de plusieurs lignes dans mysql
    Par dejiein dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/06/2006, 10h41
  5. [VBA-E]insertion automatique d'une ligne dans un tableau
    Par janus82 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/04/2006, 15h42

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