Procédure

Signaler
Messages postés
30
Date d'inscription
mardi 19 juin 2018
Statut
Membre
Dernière intervention
27 juillet 2018
-
Messages postés
30
Date d'inscription
mardi 19 juin 2018
Statut
Membre
Dernière intervention
27 juillet 2018
-
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

1 réponse

Messages postés
28525
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juin 2020
330
Bonjour
Pourrais tu être un peu plus précis ?
Pour faire quoi ? (Ou utilisé par quoi)
Stocké où ?

Messages postés
28525
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juin 2020
330
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>";
}
Messages postés
30
Date d'inscription
mardi 19 juin 2018
Statut
Membre
Dernière intervention
27 juillet 2018

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
Messages postés
28525
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juin 2020
330 >
Messages postés
30
Date d'inscription
mardi 19 juin 2018
Statut
Membre
Dernière intervention
27 juillet 2018

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é).
Messages postés
28525
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juin 2020
330
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 
Messages postés
30
Date d'inscription
mardi 19 juin 2018
Statut
Membre
Dernière intervention
27 juillet 2018

Ok merci je vais essayer voir