- Home
- Categorie
- Coding e Sistemistica
- Coding
- Numero con zeri
-
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.
-
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?
-
@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
-
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?
-
@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.
-
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]
-
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..

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