Newsgroup: it.comp.www.php
Titolo: Particolare estrazione dato da mysql.

Salve a tutti,
devo estrarre un dato numerico da mysql (int, 2).
La particolarita' sta nel fatto che e' un numero composto da 2 cifre,
ed io vorrei che nel caso fosse un numero da 1 sola cifra (da 0 a 9),
me lo estraesse da due, tipo: 01, 02, ..., 09.
Si riesce a fare (magari usando un altro tipo di dato in mysql),
oppure devo farmi una funzioncina in php che conti le cifre di cui e'
composto e poi vada a mettere un zero nel caso sia 1?
Grazie a chi avesse gia' dovuto affrontare il problema!!!
Ciao!
Daniele

 me lo estraesse da due, tipo: 01, 02, ..., 09.
$val = '1';
$val = substr ('00' . $val, -2);
-- 
I am what I am, I do what I can
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
Vuoi supportarmi? 
http://url.repository.biz/go/3E
L'uomo, conscio di sbagliare, persevera.

 wrote in message
b8d11564.04053...@posting.google.com...

a)
lo fai con le funzioni stringa nel tuo codice php, qualcosa del tipo
aggiungi_zero($num)
{
    $num = ( $num<10 ? '0' . $num : $num );
    return $num;
}
b)
definisci il campo come int(2) zerofill
Io preferirei la seconda, a condizione che tutte le volte che ti serve quel
dato preferisci ottenerlo formattato in quel modo.
Se si può meglio far fare tutto al dbms, è più veloce e più chiaro.

 Se si puň meglio far fare tutto al dbms, č piů veloce e piů chiaro.
in questo caso avrebbe l'unica limitazione di avere nel db come valore 
massimo 99;
inoltre se gli serve riavere il dato formattato in altro modo potrebbe 
riusare una funzione che inversa di quella sopra, riprende quindi solo
la 2 cifra nel caso dei valori < 10;

 
Sbagliato, basta il manuale per questi quesiti:
http://it.php.net/manual/it/language.types.type-juggling.php
<?php
$foo = "0";  // $foo is string (ASCII 48)
$foo += 2;  // $foo is now an integer (2)
$foo = $foo + 1.3;  // $foo is now a float (3.3)
$foo = 5 + "10 Little Piggies"; // $foo is integer (15)
$foo = 5 + "10 Small Pigs";    // $foo is integer (15)
?>
-- 
Spoken: How much is that gorilla in the window?
Take our advice, At any price, A gorilla like Magilla is mighty nice.
Gorilla, Magilla Gorilla for sale

 massimo 99;
Non credo sia esatto. Un campo INT(2) UNSIGNED ZEROFILL può
contenere al max il valore intero 4294967295. Se il numero è
minore di 10, allora MySQL provvede ad aggiungere a sinistra
uno zero (
http://tinyurl.com/2msp6
).
-- 
Federico R.

 la 2 cifra nel caso dei valori < 10;
Certamente. Tutto dipende da quante volte gli serve il dato formattato e
quante volte gli serve il dato non formattato.

...

Mi interessava molto la possibilta' di far gestire il tutto al DB, ed
avevo gia' pensato allo zerofill, purtroppo nel db la formattazione e'
corretta, (lo zero a SX c'e'), ma non riesco a "tirarlo fuori" in modo
corretto, in quanto se lo estraggo come int, php mi perde lo zero,
quindi devo comunque ricorrere ad una funzione che lo riconverta...
Grazie a tutti.

 ha scritto nel messaggio
news:b8d11564.04053...@posting.google.com...

io ho affrontato il problema per creare un contatore... volevo un numero
fisso di numero (6) ...
$stringa=1;
$stringa2=sprintf("%02.0f",$stringa)
echo $stringa2;
spero di esserti stato utile
ciaoooo
Dade


ehmm ovviamente alla fine dell'sprintf ci fa un ;
ghghhg :P
pardon, ma me li dimentico sempre :)))
Ciao
Dade