Procédure

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

1 réponse

jordane45 Messages postés 37532 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2023 341
20 juin 2018 à 06:51
Bonjour
Pourrais tu être un peu plus précis ?
Pour faire quoi ? (Ou utilisé par quoi)
Stocké où ?

0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
20 juin 2018 à 11:08
je veux créer un formulaire en php qui va permettre d'enregistrer les laborantins(idendifiant, nom, prenom,telephone , email) d'un hôpital dans une base de données mysql et j'aimerai que l'identifiant soit automatique le premier sera LabA0001 et le second LabA0002 et à LabA9999 que le suivant soit LabB0001
0
jordane45 Messages postés 37532 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2023 341
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>";
}
0
bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
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
0
jordane45 Messages postés 37532 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2023 341 > bangado93 Messages postés 30 Date d'inscription mardi 19 juin 2018 Statut Membre Dernière intervention 27 juillet 2018
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é).
0
jordane45 Messages postés 37532 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2023 341
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 
0