Visualizzazione risultati 1 fino 15 di 15

Discussione: Condizione su campo TEXT non verificata

  1. #1
    Guest

    Predefinito Condizione su campo TEXT non verificata

    ciao ragazzuoli,
    ho un form che immette dei dati in un campo TEXT del database.

    perchè questa condizione non si realizza mai?
    Codice PHP:
    if($row['extra']!==""){
    echo
    "<td style='border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; text-align: center; font-size: 8pt'><a href=\"info.php?id=$row[id]\" target='I1'>".$row['titolo']."</a></td>";
    }
    else {
    echo
    "<td style='border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; text-align: center; font-size: 8pt'>".$row['titolo']."</td>";
    }
    in cui extra è il campo del database che effettivamente RISULTA vuoto, ma non accade quello che vorrei: infatti si realizza sempre la prima condizione ed il link cliccabile viene creato sempre e comunque.

    grazie.

  2. #2
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Citazione Originalmente inviato da lsdforum
    ciao ragazzuoli,
    ho un form che immette dei dati in un campo TEXT del database.

    perchè questa condizione non si realizza mai?
    Codice PHP:
    if($row['extra']!==""){
    echo
    "<td style='border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; text-align: center; font-size: 8pt'><a href=\"info.php?id=$row[id]\" target='I1'>".$row['titolo']."</a></td>";
    }
    else {
    echo
    "<td style='border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; text-align: center; font-size: 8pt'>".$row['titolo']."</td>";
    }
    in cui extra è il campo del database che effettivamente RISULTA vuoto, ma non accade quello che vorrei: infatti si realizza sempre la prima condizione ed il link cliccabile viene creato sempre e comunque.

    grazie.
    L'array $row, che cos'è?? E' un mysql_fetch_array???

    Ciao!

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Perché hai usato l'operatore !== che significa "non identico" anziché quello corretto != (con un uguale in meno) che significa "non uguale".

    La differenza tra i due è più comprensibile se si parla di oggetti: supponi di aver creato degli oggetti così:
    Codice PHP:
    $auto1 = new Auto ("Fiat", "Panda");
    $auto2 = new Auto ("Fiat", "Panda");
    $auto3 = $auto1;
    I seguenti test sono tutti falsi:
    $auto1 != $auto2 // $auto1 != $auto3 // $auto1 !== $auto3
    mentre questo è vero:
    $auto1 !== $auto2
    perché $auto1 e $auto2 sono stati generati come oggetti diversi (quindi sono uguali, ma non identici), mentre $auto3 è ottenuto copiando il riferimento di $auto1 (così gli oggetti sono identici, quindi anche uguali).

    Spero di averti chiarito le idee... stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite
    Perché hai usato l'operatore !== che significa "non identico" anziché quello corretto != (con un uguale in meno) che significa "non uguale".

    La differenza tra i due è più comprensibile se si parla di oggetti: supponi di aver creato degli oggetti così:
    Codice PHP:
    $auto1 = new Auto ("Fiat", "Panda");
    $auto2 = new Auto ("Fiat", "Panda");
    $auto3 = $auto1;
    I seguenti test sono tutti falsi:
    $auto1 != $auto2 // $auto1 != $auto3 // $auto1 !== $auto3
    mentre questo è vero:
    $auto1 !== $auto2
    perché $auto1 e $auto2 sono stati generati come oggetti diversi (quindi sono uguali, ma non identici), mentre $auto3 è ottenuto copiando il riferimento di $auto1 (così gli oggetti sono identici, quindi anche uguali).

    Spero di averti chiarito le idee... stammi bene...
    no l'esempio non l'ho capito :(

    ma quindi "!=" vuol dire DIVERSO, in pratica no?
    perchè in un'altra condizione, praticamente identica a questa che ho scritto qui, in cui ho usato "!==" e funziona bene!!

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

    Predefinito

    Perché diverso è diverso (scusa il gioco di parole) da identico come ti ha spiegato dementialsite. Usa sempre !=
    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

  6. #6
    Guest

    Predefinito

    e !== quando va usato?
    e scusate, ma a questo punto "=" e "=="??

  7. #7
    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 lsdforum
    e !== quando va usato?
    e scusate, ma a questo punto "=" e "=="??
    = serve ad assegnare dei valori;
    == vuol dire uguale;
    === vuol dire identico.
    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

  8. #8
    Guest

    Predefinito

    ok grazie.
    per dovere di cronaca ho cmq fato un bel modulo di invio files con tanto di dati tabulati, immagini da cliccare se vengono rispettate delle conidzioni ed una bella procedura per leggere delle info caricnandole da databse, non sono piu proprio niubbisismo :D
    http://lsdfreetime.altervista.org alla sezione Age of EMPIRES 2...
    mi devo difendere, che con quest'ultima domanda ho fatto proprio la figura del coglionazzo LOL :)

    PS: mettendo != anche per i campi PIENI ottengo lo stesso errore, cioè non c'è distinzione tra un caso e l'altro
    addirittura se metto != i campi pieni non vengono riconosciuti!!!
    Ultima modifica di lsdforum : 09-03-2006 alle ore 20.34.15

  9. #9
    L'avatar di powser
    powser non è connesso Moderatore
    Data registrazione
    29-12-2003
    Residenza
    Ragusa
    Messaggi
    2,917

    Predefinito

    Se puoi farci un esempio....(lo sai che devi stare attento anche al case sensitive )
    != significa "diverso"
    "I have something to say, it's better to burn out than to fade away..." Victor Kruger/The Kurgan

    My Site

    La risposta alla tua domanda, la trovi su http://forum.altervista.org basta fare una ricerca!

  10. #10
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da lsdforum
    no l'esempio non l'ho capito :(

    ma quindi "!=" vuol dire DIVERSO, in pratica no?
    perchè in un'altra condizione, praticamente identica a questa che ho scritto qui, in cui ho usato "!==" e funziona bene!!
    Provo a rimettere chiarezza in quanto detto:

    - $a e $b sono identici (operatore === ) se si tratta della stessa cella di memoria
    - $a e $b sono uguali (operatore ==) se hanno gli stessi valori, ma non occupano necessariamente la stessa cella di memoria

    È proprio per questo che il tuo test risulta sbagliato, perché confronti per identicità la cella di memoria dove hai messo $row['extra'] con quella in cui PHP ha temporaneamente messo la stringa vuota che usi per il confronto. Il confronto non dà errore di sintassi, ma risulta sempre vero perché le due posizioni in memoria saranno sempre diverse...

    Più chiaro adesso? Statemi bene...
    Ultima modifica di dementialsite : 10-03-2006 alle ore 10.44.33
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  11. #11
    Guest

    Predefinito

    si ho capito, ma il fatto è che ora ho corretto il codice e non funziona uguale
    Codice PHP:
    if($row['extra']!=""){
    echo
    "<td style='border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; text-align: center; font-size: 8pt'><a href=\"info.php?id=$row[id]\" target='I1'>".$row['titolo']."</a></td>";
    }
    else {
    echo
    "<td style='border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px; text-align: center; font-size: 8pt'>".$row['titolo']."</td>";
    }
    visto che ora è come se TUTTI i campi extra fossero SEMPRE vuoti
    Ultima modifica di lsdforum : 10-03-2006 alle ore 12.58.44

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

    Predefinito

    Invece che mettere "" prova a mettere NULL.
    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

  13. #13
    Guest

    Predefinito

    non funziona è uguale: ora tutti i casi sono identici, come se il campo extra fosse vuoto..
    ma porca vacca è mai possibile??
    è una *******ta sta cosa, lo sento, ma non viene fuori bene!!!
    e pensare che due righe di codice sotto c'è una cosa similare che funziona benisismo!!!

    PS: ridicola sta cosa della censura

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

    Predefinito

    Prova a sostituire la prima riga così:
    Codice PHP:
    if(trim($row['extra'])!=""){
    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

  15. #15
    Guest

    Predefinito

    niente non va. ne con "" ne con NULL
    ora sbrocco e sfascio tutttoooooooooooooooooooooooo
    Ultima modifica di lsdforum : 10-03-2006 alle ore 13.17.02

Regole di scrittura

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