Procédure

bangado93 30 Messages postés mardi 19 juin 2018Date d'inscription 27 juillet 2018 Dernière intervention - 20 juin 2018 à 00:07 - Dernière réponse : bangado93 30 Messages postés mardi 19 juin 2018Date d'inscription 27 juillet 2018 Dernière intervention
- 23 juin 2018 à 22:31
Bonjour les amis j'ai besoin de votre aide
je travail sur un projet pour ma soutenance j'aimerai avoir votre aide
Je cherche une procédure qui crée un numéro automatique en php
et le numéro sera du genre LabA0001 et quand il viendra à LabA9999 que le suivant soit LabB0001
Afficher la suite 

Votre réponse

7 réponses

jordane45 22578 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 septembre 2018 Dernière intervention - 20 juin 2018 à 06:51
0
Merci
Bonjour
Pourrais tu être un peu plus précis ?
Pour faire quoi ? (Ou utilisé par quoi)
Stocké où ?

jordane45 22578 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 septembre 2018 Dernière intervention - 20 juin 2018 à 14:03
Tu peux:
Extraire la partie numérique de la valeur précédente et lui ajouter + 1
et lorsque le nombre est > à 9999, dans la partie "texte", récupérer le dernier caractère... et passer au suivant
un truc du genre
<?php

function get_numerics ($str) {
    preg_match_all('/\d+/', $str, $matches);
    return $matches[0][0];
}

function getNextChar($char='a'){
  return chr(ord($char)+1);
}


$prefix = 'Lab';
$maxNum = 9999;

$valPrec = $prefix . 'a01';
for($i = 1; $i <=99999 ; $i++){
  $numPrec = get_numerics($valPrec);
  $textPrec = str_replace($numPrec,"",$valPrec);
  $leterPrec = substr($textPrec, -1);
     
  if($numPrec == $maxNum){
     $newChar = getNextChar($leterPrec);     
     $numPrec = 0;
  }else{
    $newChar = $leterPrec;
  }
  
  $numPrec ++;
  $valPrec = $prefix.$newChar.sprintf("%04s", $numPrec);
  
  echo $valPrec . "<br>";
}
bangado93 30 Messages postés mardi 19 juin 2018Date d'inscription 27 juillet 2018 Dernière intervention - 22 juin 2018 à 23:29
Merci mon grand pardon pour le retard mis pour te répondre tu pourras me laisser une adresse mail où je pourrai communiquer avec toi si possible
jordane45 22578 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 septembre 2018 Dernière intervention > bangado93 30 Messages postés mardi 19 juin 2018Date d'inscription 27 juillet 2018 Dernière intervention - 23 juin 2018 à 15:30
Bonjour
une adresse mail ??? pourquoi faire ?
Tu peux parfaitement poser tes questions sur le forum.

De mon côté... je ne fais aucun support ... ni par mail ni pas MP (message privé).
jordane45 22578 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 25 septembre 2018 Dernière intervention - 23 juin 2018 à 15:36
En réponse à ton MP :
// Fonction utilisant des expressions régulères pour extraire les nombres présents
// dans la chaine $str
// la documentation php de preg_match_all te donnera tous les détails
function get_numerics ($str) {
    preg_match_all('/\d+/', $str, $matches);
    return $matches[0][0];
}


// retour la "prochaine" lettre
// les documentations PHP des instructions  Char()  et ord() 
// te donneront toutes les infos nécessaires à leur compréhension
function getNextChar($char='a'){
  return chr(ord($char)+1);
}


La suite du code :

$prefix = 'Lab';
$maxNum = 9999;

$valPrec = $prefix . 'a01';
for($i = 1; $i <=99999 ; $i++){
  $numPrec = get_numerics($valPrec);
  $textPrec = str_replace($numPrec,"",$valPrec);
  $leterPrec = substr($textPrec, -1);
     
  if($numPrec == $maxNum){
     $newChar = getNextChar($leterPrec);     
     $numPrec = 0;
  }else{
    $newChar = $leterPrec;
  }
  
  $numPrec ++;
  $valPrec = $prefix.$newChar.sprintf("%04s", $numPrec);
  
  echo $valPrec . "<br>";
}

n'est qu'une mise en application des deux fonctions.
pour que tu puisses voir le résultat.
Finalement, ce qui te sera utile dans cette portion du code n'est que :
 $maxNum = 9999;
  $numPrec = get_numerics($valPrec);
  $textPrec = str_replace($numPrec,"",$valPrec);
  $leterPrec = substr($textPrec, -1);
 if($numPrec == $maxNum){ // pour savoir jusqu'à combien incrémenter les nombres
     $newChar = getNextChar($leterPrec);     
     $numPrec = 0;
  }else{
    $newChar = $leterPrec;
  }
  $numPrec ++; // on incrémente le chiffre
  $valPrec = $prefix.$newChar.sprintf("%04s", $numPrec); // on forme le nouveau code 
bangado93 30 Messages postés mardi 19 juin 2018Date d'inscription 27 juillet 2018 Dernière intervention - 23 juin 2018 à 22:31
Ok merci je vais essayer voir
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.