Visualizzazione risultati 1 fino 5 di 5

Discussione: Utilizzare variabile solo se il campo è compilato

  1. #1
    Guest

    Question Utilizzare variabile solo se il campo è compilato

    Ciao a tutti.
    Dovrei effettuare una ricerca mediante nome e cognome.
    Ma se conosco solo il cognome e non compilo il nome come posso escludere tale variabile dalla query?

    Dopo varie ricerche e tentativi ho utilizzato questo codice:
    Codice PHP:
    SELECT * FROM tab WHERE
    CASE WHEN '$cognome' IS NOT NULL THEN cognome = '$cognome' END
    AND CASE WHEN '$nome' IS NOT NULL THEN nome = '$nome' END;
    Il campo vuoto però non è NULL, quindi va a cercare un record con il campo vuoto.

    Qualche suggerimento?

    Grazie.

  2. #2
    Guest

    Predefinito

    Codice PHP:
    $where = "WHERE ";

    if(
    $cognome != "") {
    // Se il campo cognome non è vuoto, lo uso
    $where .= "cognome='{$cognome}'"; }

    if(
    $nome != "") {
    // Se il campo nome non è vuoto, lo uso
    //Prima verifico se il campo cognome è stato usato nella query

    if($where = "WHERE ") {
    // Se no
    $where .= "nome ='{$nome}'";
    }else{
    //Se si
    $where .= " AND nome ='{$nome}'";
    }
    }

    //Unisco tutta la query
    $sql = "SELECT * FROM tab " . $where;
    Ultima modifica di vplaza : 26-06-2014 alle ore 22.33.11

  3. #3
    Guest

    Predefinito

    Ti conviene utilizzare if (isset($variabile)) {} piuttosto che if ($variabile != "") {}

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da architetturearoma Visualizza messaggio
    Ti conviene utilizzare if (isset($variabile)) {} piuttosto che if ($variabile != "") {}
    Secondo me invece non è così.
    La variabile potrebbe essere settata, e quindi l'if essere vero, ma avere valore vuoto. In questo caso avresti l'esecuzione del blocco anche se ricadi in una situazione in cui il blocco non deve essere eseguito.
    Ultima modifica di vplaza : 27-06-2014 alle ore 22.39.57

  5. #5
    Guest

    Predefinito

    Giusto, hai ragione, pensavo che la funzione isset funzionasse in un altro modo.

Regole di scrittura

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