Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    281

    controllare che un campo sia un numero

    ho bisogno di un'istruzione php che prenda un valore, e se quel valore è diverso da un numero, lo imposti a 1.

    il codice che ho usato io è questo:

    codice:
    if(preg_match("/^[0-9]$/", $quantita ))
    { $quantita=1 ; }
    e questo codice funziona ma solo quando inserisco
    a
    b
    c
    il
    ecc.ecc.
    il problema è che non funziona se inserisco valori come
    1b
    4c
    9f
    eccetera, insomma, se c'è un numero e una lettera non mi imposta la quantità a 1.....

    dove sbaglio?

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    $quantita=is_numeric($quantita) ? $quantita : 1;
    think simple think ringo

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    281
    Grazie mille marketto!

  4. #4
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    questo interessa anche a me.

    ho già, ehm , preso in prestito il codice ciao

  5. #5
    Originariamente inviato da marketto
    codice:
    $quantita=is_numeric($quantita) ? $quantita : 1;
    meglio se:

    $quantita= is_numeric($quantita) == true && is_string($quantita) == false ? $quantita : 1;
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    281
    Originariamente inviato da andr3a
    meglio se:

    $quantita= is_numeric($quantita) == true && is_string($quantita) == false ? $quantita : 1;
    all'atto pratico cosa cambia tra il tuo codice e quello di markett?

  7. #7
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da riaw
    all'atto pratico cosa cambia tra il tuo codice e quello di markett?
    col codice di andr3a viene eseguito un'ulteriore controllo, ovvero:
    se $quantità è un numero e se $quantità non è una stringa allora prendi il suo valore, altrimenti prendi 1.
    think simple think ringo

  8. #8
    se lavori con interi usa anche intVal per rendere di fatto $quantita un numero intero

    $quantita = '4E18';
    echo is_numeric($quantita) == true ? 'true' : 'false';
    echo is_numeric($quantita) == true && is_string($quantita) == false ? 'true' : 'false';
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.