Autore Topic: Valori null dal database mysql  (Letto 250 volte)

Offline marco_88

  • Nuovo arrivato
  • *
  • Post: 39
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Kubuntu 13.10
Valori null dal database mysql
« il: 27 Marzo 2014, 00:22:54 CET »
0
Ciao a tutti, ho un piccolo problema con i valori null nel database.

Quando creo un nuovo elemento dal sito web e alcuni campi che possono anche essere null, non gli riempio, nel database vengono scritti questi campi con il valore NULL tutto maiuscolo.

Quando creo un nuovo elemento dall'applicazione se li lascio vuoti nel database non viene scritto niente.

Altro problema è che se salvo un elemento creato dal sito web, dall'applicazione, se prima c'erano tutti valori NULL, poi diventano null come se fosse una stringa, e di fatto viene anche letto il valore dall'applicazione come null.

Io vorrei che se il valore sul database è NULL, nell'EditText appaia come vuoto, e che se io salvo è il campo lo lascio vuoto nel database venga scritto come NULL.

Se è NULL l'applicazione non deve scrivere nulla e se io salvo deve lasciare il valore che c'era, ossia NULL e non una stringa vuota.

Qualcuno di voi sa come risolvere questi piccoli inconvenienti?

Marco

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Valori null dal database mysql
« Risposta #1 il: 27 Marzo 2014, 08:53:22 CET »
0
Nella definizione della tabella di un database puoi dichiarare di non volere campi NULL e definire un default in caso di campo non definito. Come hai creato la tabella?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline marco_88

  • Nuovo arrivato
  • *
  • Post: 39
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Kubuntu 13.10
Re:Valori null dal database mysql
« Risposta #2 il: 27 Marzo 2014, 10:13:51 CET »
0
Nella tabella del database sono definiti come NULL, ma devono essere così perchè per il sito web questa è la configurazione corretta. Io vorrei gestire questi campi nella stessa maniera di come vengono trattati nel sito web.

Nel sito web se lascio i campi vuoti nel database viene scritto null e quando apro la pagina ho campi vuoti e se salvo non salva niente in quei campi, ed è giusto così.

Invece nell'applicazione non si comporta così.

Marco

Post unito: 27 Marzo 2014, 13:08:32 CET
Ho risolto, l'ho gestita sia da php che da android.

Praticamente su php ho aggiunto nell'update (e successivamente lo farò anche per la creazione) un IF nella query in questo modo:

Codice: [Seleziona]
address = IF('$address' = '', NULL, '$address')
In modo che se dal programma android immetto una stringa vuota in un valore che sul mysql ha come default NULL, scriverà null nel database.

Nella parte android ho invece messo un if che se nell'editText ho il valore null che lo interpreta come stringa, di non far vedere nulla, per evitare di salvare il valore null nel database:

Codice: [Seleziona]
if(!(plant.getString(TAG_ADDRESS).equals("null")))
                    txtAddress.setText(plant.getString(TAG_ADDRESS));

Non so se è stata la maniera giusta di operare, però con queste modifiche sembra funzionare.

Marco
« Ultima modifica: 27 Marzo 2014, 13:08:32 CET da marco_88, Reason: Merged DoublePost »