• User Attivo

    Numero con zeri

    Ciao a tutti,

    vi posto il mio quesito:

    ho un campo nel DB varchar (10) in cui inserisco questo valore: TS00000000

    non riesco a capire come fare per far incrementare tale valore ogni volta che inserisco una nuova riga nel DB. Avete idee?

    Io ho provato in questo modo:

    [php]
    $risultatis = mysql_query("SELECT * FROM riparazioni order by ts ASC");
    if (!$risultatis) {
    die("Errore nella query $risultatis: " . mysql_error());
    }
    $rowss = mysql_fetch_assoc($risultatis);

    $tslast = $rowss['ts'];
    $tss = eregi_replace("([a-z.-]+)","",$tslast);
    $tss1 ++;
    $ts = "TS$tss1";
    [/php]

    Solo che nel DB mi inserisce TS1...

    Stò impazzendo, ho cercato ovunque ma invano..

    Grazie in anticipo, saluti.


  • ModSenior

    Quindi te alla fine interessa come fare in php ad incrementare una variabile numerica...
    Ma il fatto è che non è 0 ===> 1 ===> 2,
    ma 00001 ===> 00002 ===> 00003 vero?


  • User Attivo

    @marcocarrieri said:

    Quindi te alla fine interessa come fare in php ad incrementare una variabile numerica...
    Ma il fatto è che non è 0 ===> 1 ===> 2,
    ma 00001 ===> 00002 ===> 00003 vero?

    Esatto!

    Dovrebbe essere 00000001 - 00000002 - 00000003 ecc che poi lo reinserisco nel DB come TS00000001 - TS00000002 ecc

    Grazie


  • ModSenior

    Mmm ora smanetto un pò, provo ad accettare la sfida e vedere se trovo qualcosa. 😄
    Non so bene il php quindi probabile che passi qualcuno che sapendolo meglio trovi una soluzione più veloce e snella della mia.

    P.S il numero di cifre è fisso? 8?

    00000001? O anche più corto o più lungo?


  • User Attivo

    @marcocarrieri said:

    Mmm ora smanetto un pò, provo ad accettare la sfida e vedere se trovo qualcosa. 😄
    Non so bene il php quindi probabile che passi qualcuno che sapendolo meglio trovi una soluzione più veloce e snella della mia.

    P.S il numero di cifre è fisso? 8?

    00000001? O anche più corto o più lungo?

    No è da 8 cifre, dobbiamo solo incrementarlo in un qualche modo.. 😄

    Grazie per l'interessamento.


  • ModSenior

    Come ti dicevo sicuramente ci saranno soluzioni più snelle della mia. 🙂
    Con meno codice.

    [php]
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test</title>
    <style type="text/css">
    html,body
    {
    margin:0px;
    padding:0px;
    background:#AAD4FF;
    }
    </style>
    </head>
    <body>
    <?php
    $variabile="TS00000001";
    $newvariabile=$variabile;
    for($indice=0;$indice<100;$indice++)
    {
    echo $newvariabile."<br />";
    $newvariabile=incrementa($newvariabile);
    }
    function incrementa($valore)
    {
    $numeroLettere=2;
    $lunghezzaNumero=8;
    $parteStringa=substr($valore, 0,$numeroLettere);
    $parteNumero=substr($valore, $numeroLettere,strlen($valore));
    $parteNumeroIncrementato=$parteNumero*1+1;
    while(strlen($parteNumeroIncrementato)<$lunghezzaNumero)
    {
    $parteNumeroIncrementato="0".$parteNumeroIncrementato;
    }
    $nuovoValore=$parteStringa.$parteNumeroIncrementato;
    return $nuovoValore;
    }
    ?>
    </body>
    </html>
    [/php]


  • User Attivo

    Grazie marco,

    così però fà un ciclo di TS da TS00000000 a TS00000100 e mi salva nel DB solo il TS00000100 😄

    Ecco così funziona, almeno sembra 😄

    [php]
    function incrementa($valore)
    {
    $numeroLettere=2;
    $lunghezzaNumero=8;
    $parteStringa=substr($valore, 0,$numeroLettere);
    $parteNumero=substr($valore, $numeroLettere,strlen($valore));
    $parteNumeroIncrementato=$parteNumero*1+1;
    while(strlen($parteNumeroIncrementato)<$lunghezzaNumero)
    {
    $parteNumeroIncrementato="0".$parteNumeroIncrementato;
    }
    $nuovoValore=$parteStringa.$parteNumeroIncrementato;
    return $nuovoValore;
    }
    $variabile="$tslast";
    $newvariabile=$variabile;
    $newvariabile=incrementa($newvariabile);
    $ts = $newvariabile;[/php]

    Grazie mille.. 🙂


  • ModSenior

    Si si il ciclo lo avevo fatto solo per far vedere che funzionava con numeri a 1,2,3 cifre ecc...