Visualizzazione risultati 1 fino 21 di 21

Discussione: Problema con operatori booleani

  1. #1
    L'avatar di Celtenn
    Celtenn non è connesso Utente giovane
    Data registrazione
    10-11-2005
    Residenza
    Laboratorio Mdd
    Messaggi
    57

    Unhappy Problema con operatori booleani

    Come da titolo, mettendo il seguente codice:

    Codice PHP:
    if ($Z > 0.0) && ($Z < 20.0) {
    $MySql = "UPDATE User SET Permanenza = Poco WHERE Nome = '".$Login."'";
    $Result = mysql_query($MySql);
    }

    mi appare la query di errore => Parse error: syntax error, unexpected T_BOOLEAN_AND in miosito.php on line XX.


    C'è forse qualche problema con Maggiore Uguale - Minore Uguale?


    Grazie!
    L'Oscuro Celtenn.

    Colui che è, che è stato, e che sempre e comunque ed evidentemente sarà. !=.




  2. #2
    Guest

    Predefinito

    La sintassi corretta è:
    Codice PHP:
    if ($Z > 0.0 && $Z < 20.0) {

    Ciao!

  3. #3
    L'avatar di Celtenn
    Celtenn non è connesso Utente giovane
    Data registrazione
    10-11-2005
    Residenza
    Laboratorio Mdd
    Messaggi
    57

    Predefinito

    Perfetto! Grazie!


    C'è solo un problema:

    se vado a mettere:

    Codice PHP:
    if ($Z > 0.0 && $Z < 20.0) {
    mi mostra sempre come Valore 'Poco'. Fin qui bene, ma se voglio mettere DOPO lo script di prima questo codice:

    Codice PHP:
    if ($Z > 21.0 && $Z < 100.0) {
    e dovrebbe dare come valore 'Abbastanza', perchè mi da sempre 'Poco', nonostante il mio valore sia 90.0 ?


    Grazie ancora!
    Ultima modifica di Celtenn : 09-01-2007 alle ore 23.45.57
    L'Oscuro Celtenn.

    Colui che è, che è stato, e che sempre e comunque ed evidentemente sarà. !=.




  4. #4
    Guest

    Predefinito

    Mi sono perso! :D
    Posta l'intero script.


    Ciaoo!

  5. #5
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    dovresti modificare il valore di Permanenza

  6. #6
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Farei così :
    Codice PHP:
    $perman = "Molto"; //default, per valori superiori a 100.0

    if ($Z < 20.0) {
    $perman = "Poco";
    }elseif (
    $Z >= 20.0 && $Z < 100.0) {
    $perman = "Abbastanza";
    }
    $MySql = "UPDATE User SET Permanenza = '$perman' WHERE Nome = '$Login'";
    ..
    etc...
    nel secondo if (elseif) parto sempre da >= 20.0 altrimenti se capita esattamente il valore 20.0 non rientra nel giusto caso, non copri tutta la gamma (si crea un buco).
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  7. #7
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    io comunque, qui:
    Codice PHP:
    }elseif ($Z >= 20.0 && $Z < 100.0) {
    Per una questione di correttezza e di logica (separare ogni condizione) aggiungerei le doppie parentesi in questo modo:
    Codice PHP:
    }elseif (($Z >= 20.0) && ($Z < 100.0)) {

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da silverseraph
    io comunque, qui:
    Codice PHP:
    }elseif ($Z >= 20.0 && $Z < 100.0) {
    Per una questione di correttezza e di logica (separare ogni condizione) aggiungerei le doppie parentesi in questo modo:
    Codice PHP:
    }elseif (($Z >= 20.0) && ($Z < 100.0)) {
    Per una questione di correttezza e di logica, io li terrei senza parentesi in più.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  9. #9
    Guest

    Predefinito

    Quoto funcool, non c'è nulla di logico e corretto nel suggerimento dato da silveraph.


    ciao!

  10. #10
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    Citazione Originalmente inviato da funcool
    Per una questione di correttezza e di logica, io li terrei senza parentesi in più.
    @funcool: Beh, senza quelle altre parentesi in vb mi avrebbe dato errore, vedi un po' tu.

    @debug: mi chiamo silverseraph, non silveraph ;)

  11. #11
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da silverseraph
    @funcool: Beh, senza quelle altre parentesi in vb mi avrebbe dato errore, vedi un po' tu.
    Non ho capito cosa c'entra Visual Basic che è completamente diverso da PHP. Fosse stato qualche altre linguaggio come C e famiglia, avrei potuto capire. E' la stessa cosa di togliere le parentesi graffe negli if se l'istruzione è una sola.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  12. #12
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    Appunto, se l'istruzione è una sola (li erano due). Comunque il Visual Basic è molto similare, le strutture di controllo sono le stesse, cambia in alcuni casi la sintassi.

    Penso che questo OT possa bastare...

  13. #13
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da silverseraph
    Appunto, se l'istruzione è una sola (li erano due). Comunque il Visual Basic è molto similare, le strutture di controllo sono le stesse, cambia in alcuni casi la sintassi.

    Penso che questo OT possa bastare...
    Vabbé, se vuoi aver ragione, ti dò ragione.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  14. #14
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Sì insomma, per non confondere ulteriormente il thread-starter,
    possiamo dire:

    1) che con o senza parentesi non cambia nulla, il risultato è il medesimo e soprattutto non si incappa in errori di sintassi;

    2) tipicamente -e parlo non solo di php ma anche molti linguaggi simili- nelle condizioni si raggruppano inevitabilmente tra parentesi quando le condizioni diventano più complesse, mentre nel nostro caso abbiamo una semplice condizione per definire un "range" di valori numerici.
    Un esempio dove le parentesi sono inevitabili per la logica:
    if ( $val1 == 1 || ($val2==$val3 && $val1 < 1) )
    da leggersi se è vera la prima Oppure la seconda E la terza assieme.
    In casi più semplici parentesi in più sono puramente superflue.
    Ultima modifica di heracleum : 10-01-2007 alle ore 19.57.33
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  15. #15
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    Ecco appunto, è chiaro che se hai solo una condizione da verificare utilizzerai una sola parentesi, è anche vero che se sono 2 se ne può utilizzare solo una MA ripeto che in altri linguaggi avrebbe generato un errore, abituandosi alle libertà di PHP poi ci si troverebbe in difficoltà. E, non per niente molti dei più grandi CMS, Boards utilizzano sempre le doppie parentesi anche con solo 2 condizioni da verificare.

  16. #16
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Oltre a Visual Basic a quali altri linguaggi darebbe errore?
    Ho dato una lettura veloce al codice di PhpBB e non ho trovato nulla del genere.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  17. #17
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    Non lo so, conosco bene solo PHP e Visual Basic.
    Comunque, rileggiti meglio phpBB io prprio da li ho visto che erano necessarie.

  18. #18
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da silverseraph
    Comunque, rileggiti meglio phpBB io prprio da li ho visto che erano necessarie.
    Come già detto da Heracleum, dipende appunto se sono necessarie o meno.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  19. #19
    Guest

    Predefinito

    Silverseraph, il fatto è che il tuo suggerimento è del tutto inutile (e non stiamo parlando se sia più elegante o meno, ma parliamo di funzionalità), punto, senza se nè ma!
    E' come dire che questi due esempi sono diversi:
    Codice PHP:
    if ($var==1 || $var2=2) ...

    if (((((
    $var==1 || $var2=2))))) ...
    e così via.

    Su cosa vuoi discutere? Su altri linguaggi? Fallo nella stanza Plug&Pray, qui sei OT e non contribuisci alla risoluzione o a far chiarezza.


    Ciao!

  20. #20
    L'avatar di silverseraph
    silverseraph non è connesso AlterGuru
    Data registrazione
    27-04-2005
    Residenza
    Localhost
    Messaggi
    1,104

    Predefinito

    1) Ti sbagli di grosso
    2) Esempio senza senso
    3) Non voglio parlare di altri linguaggi ma ho fatto una precisazione
    4) Sono stato il primo a dire che eravamo OT, ma si è continuato
    5) Ho finito. Potete pure cancellare, ciao

  21. #21
    Guest

    Predefinito

    Citazione Originalmente inviato da silverseraph
    1) Ti sbagli di grosso
    2) Esempio senza senso
    3) Non voglio parlare di altri linguaggi ma ho fatto una precisazione
    4) Sono stato il primo a dire che eravamo OT, ma si è continuato
    5) Ho finito. Potete pure cancellare, ciao
    1) Sei il solo a pensarlo (e sottolineo pensarlo)
    2) è lo stesso che hai fatto tu, a livello di script non cambia assolutamente nulla
    3) fare una precisazione parlando di altri linguaggi vuol dire parlare di altri linguaggi!
    4) sei arrivato primo, contento?
    5) roger capo! ma non sei tu a poterci dare il benestare per queste azioni.

    Se vuoi continuare meglio in privato, ok?


    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •