Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88

    Condizione diversa da valore numerico

    Ho il seguente problema (credo sia banale) un campo prezzo all'interno di una tabella che può contenere tre valori: un numero maggiore di zero, un valore = a zero ed un termine = incluso. Applicando la seguente condizione:
    codice:
    <?php
    if($prezzo >= 0) {
    echo  " " . $prezzo . " €";
    elseif ($prezzo  === "incluso")
    {
    echo " ";
    }
    ?>
    quando nel campo prezzo c'è scritto "incluso" mi appare zero, io voglio che non appaia nulla. Dov'è l'errore?
    Grazie
    Ultima modifica di ligrone; 26-05-2015 a 11:56

  2. #2
    A parte il fatto di cosa ci faccia la stringa "incluso" in una colonna che dovrebbe contenere dei valori numerici!!! Sintomo di un'errata progettazione del DB e a parte la graffa chiusa mancante prima dell'elseif, ma come fa ad uscirti 0 se fai un echo di $prezzo che contiene la stringa "incluso"?!?!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88
    Quote Originariamente inviata da satifal Visualizza il messaggio
    ma come fa ad uscirti 0 se fai un echo di $prezzo che contiene la stringa "incluso"?!?!
    E' proprio questo il mio problema...

  4. #4
    Quote Originariamente inviata da ligrone Visualizza il messaggio
    E' proprio questo il mio problema...
    Beh, immediatamente prima del codice che hai postato inserisci $prezzo = "incluso"; e vedrai che ti stampa "incluso" per cui il tuo problema non è lì!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    205
    Se il campo in cui vengono inseriti i dati è di tipo numerico e tu passi una stringa è ovvio che lui ti mostra 0, perchè nel database non avrai mai la parola "incluso" ma avrai il valore numerico ( che sarà 0).
    Ti conviene trasformare il campo dove vengono inseriti quei dati in stringa e creare successivamente il controllo
    Sito Modellismo (Non ancora completo)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88
    Il campo è di tipo varchar, credo che il problema stia anche nel
    codice:
    $prezzo = number_format($prezzo, ' ', ',', '.');
    ma non so come far convivere le cose...

  7. #7
    Perdonami, ma perchè non fai la cosa più logica e semplice in questi casi?! Stampa $prezzo prima dell'if.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    88
    Cioè? Non ti capisco...

  9. #9
    Quote Originariamente inviata da ligrone Visualizza il messaggio
    Cioè? Non ti capisco...
    Come fai ad affermare che $prezzo contiene la stringa "incluso" ?????
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Quando viene effettuata una conversione implicita da stringa a numero (come nel caso di una comparazione >= 0) la stringa viene trasformata secondo questi criteri: http://php.net/manual/en/language.ty...ing.conversion

    In questo caso "incluso" viene convertito nel numero 0 che ovviamente soddisfa la condizione >= 0.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.