• User

    Semplice quesito sul SELECT

    Ciao a tutti.

    Sono alle prime armi sia con il php che con sql e inzio a creare la mia prima "applicazione". Ho un semlicissimo dubbio da porvi:

    ho creato una query del tipo :

    $query= ' SELECT ordini FROM DB_negozio

    WHERE

    nome= '.$nome
    cognome = '.$cognome
    indirizzo = '.$ indirizzo

    ( le variabili nome, cognome e indirizzo provengono da un form che un utente qualsiasi riempie)

    Ecco la domanda : Cosa accade se l'utente inserisce (volontariamente o no) solo il nome ? Ditemi qule ipotesi e più veritiera:

    1. non si considerano le variabili cognome e indirizzo e vengono selezionati tutti gli ordini delle persone che hanno lo stesso nome
    2. si assegnano in automatico il valori NULL alle altre due variabili e quindi non mi seleziona nulla
    3. assegna alle due variabili una stringa vuota e non mi seleziona comunque nulla

    Vi ringrazio per l'aiuto ... e ... scusatemi se è una domanda scema!

    :mmm:


  • Consiglio Direttivo

    Ciao bubba101,
    la risposta dovrebbe essere la numero due, perché la tua istruzione SQL diverterà:

    SELECT ordini  FROM DB_negozio WHERE nome= 'Gianni' AND cognome = *null* AND indirizzo = *null*;
    ```;)
    
    
    EDIT: salvo che tu inizializzi a prescindere le variabili, in tal caso a secondo dell'inizializzazione la risposta potrebbe essere la 3. ;)

  • User

    la risposta precedente è valida.
    Tuttavia gestire degli ordini per nome, cognome, indirizzo non è una scelta ottimale. Usa un codice univoco, che potrebbe essere un ID autogenerato in fase creazione del record, oppure il codice fiscale o la partita IVA.

    Un codice univoco ti permette di non commettere errori e di creare query più snelle.

    Nel tuo caso hai tre variabili, dovresti prima testarle e quindi creare una query per ogni possibilità. Tuttavia, ripeto, è una scelta che ti porta ad aumentare la complessità del tuo progetto invece di semplificarla.