Id progressivo

  • Creatore Discussione Creatore Discussione sniper5
  • Data di inizio Data di inizio

sniper5

Nuovo Utente
24 Mag 2012
3
0
0
salve avrei un piccolo problema da risolvere dovrei modificare un generatore ID attualmente mi crea (data-md5 univoco random) che sua volta poi viene salvato in un file csv
io vorrei che mi creasse un ID progressivo tipo N°1 N°2 e via dicendo vi posto il codice della funzione attuale grazie
Codice:
function phpfmg_getRecordID(){

    if( !isset($GLOBALS['RecordID']) ){
        $GLOBALS['RecordID'] =date("Ymd") . '-'.  substr( md5(uniqid(rand(), true)), 0,4 );;
    };
    return $GLOBALS['RecordID'];
}
 
Non si capisce bene come ti serve l'id se solo il numero in ordine progressivo o altro comunque...

PHP:
class ID{

   public static $id = 0;

     public static function addID(){ return self::$id++; }
     
     public static function getID($num){ 
         
        if(!is_numeric($num))
         return self::$id; 
        else
            return ($num<=self::$id) ? $num : false;
         
      }
     
     }
     
     ID::addID(); //return 1
     ID::addID(); //return 2
     ID::addID(); //return 3
     
    $id = ID::getID(); //return 3
    $id2 = ID::getID(2); //return 2
    $id4 = ID::getID(4); //return false
     
     echo ID::$id; //output: 3
...se non era questa la tua richiesta spiegati meglio pls


Ps: i $GLOBALS è sconsigliato usarli in php e sono piuttosto inutili visto che si dispone della tecnologia oop
 
Ultima modifica:
grazie Nefyt per il tuo aiuto
Id mi serve in formato numero progressivo partendo da 1 2 3 etc.
quindi creo la classe ID e assegnola variabile giusto,
PHP:
class ID{

   public static $id = 0;

     public static function addID(){ return self::$id++; }
     
     public static function getID($num){ 
         
        if(!is_numeric($num))
         return self::$id; 
        else
            return ($num<=self::$id) ? $num : false;
         
      }
     
     }
     
     ID::addID(); //return 1
     ID::addID(); //return 2
     ID::addID(); //return 3
     
    $id = ID::getID(); //return 3
    $id2 = ID::getID(2); //return 2
    $id4 = ID::getID(4); //return false
     
     echo ID::$id; //output: 3  
function phpfmg_getRecordID(){

    if( !isset($GLOBALS['RecordID']) ){
        $GLOBALS['RecordID'] =ID;
    return $GLOBALS['RecordID'];
}
 
No no no
PHP:
if( !isset($GLOBALS['RecordID']) ){ 
        $GLOBALS['RecordID'] =ID; 
    return $GLOBALS['RecordID'];
Dimentica i $GLOBALS :D, ID::$id è gia un oggetto statico utilizzabile dove è dichiarata o inclusa la classe
non necessita di essere messo come globale, inoltre la sintassi è sbagliata
 
Ciao e grazie per il tuo aiuto... Tralasciando il discorso $globals che non li ho messi io...,cerco di spiegarmi meglio di cosa voglio fare da premettere che sono alle prime armi con il php,
io sto usando un form per invio e salvataggio in dati csv e visualizzazione degli stessi creato con un generatore php da questo sito http://www.formmail-maker.com/generator.php
il form creato funziona alla perfezzione.. poi ho fatto alcune modifiche per leggere i dati salvati per adattarlo e fin qui ci sono riuscito, ora mi servirebbe cambiare solo la funzione che genera il (RecordID)
dato che questo ora me lo da in formato (date("Ymd") . '-'. substr( md5(uniqid(rand(), true)), 0,4 )) che sarebbe cosi (20120524-9072)
io voglio che non sia una (data ed un codice md5 random ) ma un numero progressivo che parta da 1 poi 2 3 e via dicendo ad ogni invio di dati chiaro?? Grazie