Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314

    problema con operatori logici

    Ho questo script
    Codice PHP:
    <?php
     $data_giorno 
    '2009-07-30';
     
    $ultima_rata '2009-12-30';
     
    $somma_estinta 1;
     if ((
    $somma_estinta == 0) || ($ultima_rata >= $data_giorno)){
     print 
    "si";
     }
     
    ?>
    in effetti non mi dovrebbe stampa (si) ma lo stampa sia se la variabile $somma_estinta è = a 0 sia se è = 1.

    Dove sbaglio
    felix

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    scusa ma come puoi fare un confronto < o > fra 2 stringhe??
    le devi almeno trasformare in timestamp per poterlo fare.


    Codice PHP:

    <?php

    $data_giorno 
    '2009-07-30';

    list(
    $y$m$g) = explode('-',$data_giorno);
    $time_data_giorno mktime(000$m$g$y);

    $ultima_rata '2009-12-30';
    list(
    $y$m$g) = explode('-',$ultima_rata);
    $time_ultima_rata mktime(000$m$g$y);

    $somma_estinta 1;
    if ((
    $somma_estinta == 0) || ($time_ultima_rata >= $time_data_giorno)){
    print 
    "si";


    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    fatto quello che dici e non cambia niente:

    $somma_estinta = 1;

    stampa si

    $somma_estinta = 0;

    stampa si

    esattamente come prima
    felix

  4. #4
    Certo, fintanto che ultima_rata > giorno, essendo le due condizioni unite da un OR il risultato sara' sempre vero.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    Non credo di aver capito se puoi essermi più di aiuto considerato che il confronto è sulle due date e sulla eventuale somma estinta.
    felix

  6. #6
    Se entrambe le condizioni devono essere verificate, allora devi usare l'operatore AND. Se usi l'operatore OR basta che sia vera una sola delle due perche' sia vera la condizione totale.

    Codice PHP:
    if (($somma_estinta == 0) && ($time_ultima_rata >= $time_data_giorno)) { 
    sempre che sia quello che ti serve.

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.