Autore Topic: query complessa per ricerca particolare in rubrica  (Letto 746 volte)

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
query complessa per ricerca particolare in rubrica
« il: 21 Ottobre 2011, 17:53:48 CEST »
0
Salve ragazzi vorrei realizzare un applicazione che prende in ingresso un numero di telefono, fa una ricerca in rubrica e mi ritorna tutti i dati dell'utente(nome cognome foto email organizzation e altri se presenti però non posso saperlo a priori). Una volta fatto questo dovrei fare un'altra ricerca in rubrica che mi trova tutti i contatti in rubrica che hanno lo steso cognome, dominio di email (se il contatto ha email gmail tutti i contatti col gmail), e organization....qualcuno saprebbe aiutarmi?....... Come potrei gestire il caso in cui la persona ha più email o lavora presso più aziende? grazie mille a tutti

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:query complessa per ricerca particolare in rubrica
« Risposta #1 il: 21 Ottobre 2011, 18:50:50 CEST »
0
ho iniziato a scrivere un po' di codice per ricercare i dati del contatto avendo il numero e già i primi problemi...premettendo ke so poco di query e ke da poco programmo in Android vi posto il codice...il problema cmq è ke riesco ad avere i il diplay name e il numero di telefono ma al posto di email e il nome di organitazion  mi ritorna rispettivamente il numero di telefono al contrario e il numero di telefono
ecco il codice:
Codice (Java): [Seleziona]
Uri uri1 = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
                 
                 String s1 = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME;
                 String s2 = ContactsContract.CommonDataKinds.Email.DISPLAY_NAME;
                 String s3 = ContactsContract.CommonDataKinds.Organization.COMPANY;
                 String s4 = ContactsContract.CommonDataKinds.Phone.NUMBER;
                 String[] projection = {s1,s2,s3,s4};
                 
                 String selection = ContactsContract.CommonDataKinds.Phone.NUMBER + " = ?";
                 
                 String[] selectionArgs = {numero_telefono};
                 
                 Cursor c = context.getContentResolver().query(uri1,projection,selection,selectionArgs,null);
               
                 c.moveToFirst();
                do{
                          s1 = c.getString(0);
                          s2 = c.getString(1);
                          s3 = c.getString(2);
                          s4 = c.getString(3);
                       
                }while(c.moveToNext());
                Toast.makeText(context,s1+s2+s3+s4 , Toast.LENGTH_SHORT).show();

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
Re:query complessa per ricerca particolare in rubrica
« Risposta #2 il: 21 Ottobre 2011, 22:39:17 CEST »
0
non puoi fare il tutto con due query? di fatto richiedi dati diversi e non mi pare abbia bisogno di dati integrati, dunque a rigor di logica mi pare la cosa piu' pulita da fare...

Per la seconda query, potresti fare qualcosa tipo:
Codice: [Seleziona]
select * from table_rubrica WHERE dominio_email LIKE "%gmail.com" or cognome="cognome" or organizzazione="organizzazione"
Poi parsi i risultati e li collochi in array diversi.

Oppure fai una query per dominio_email, una per cognome ed una per organizzazione.
Molto piu' pulito...io opterei per questa soluzione visto che non devi preoccuparti di eventuali sovracarichi di server come invece si fa per la programmazione web.
« Ultima modifica: 21 Ottobre 2011, 22:42:39 CEST da Melanogaster »

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:query complessa per ricerca particolare in rubrica
« Risposta #3 il: 21 Ottobre 2011, 23:16:37 CEST »
0
ok grazie ma la query ke ho fatot è solo quella per ottere i dati del contatto per poi fare la secodna query...solo il problema è dovuto al fatto ke l'oragnizzazione e l'email mi da come risultato il numero di telefono e nn capisco dove sbaglio quesot è il punto e nn capisco il perkè se dai un occhio al codice di sopra e mi dici se sbaglio qualocsa

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:query complessa per ricerca particolare in rubrica
« Risposta #4 il: 22 Ottobre 2011, 17:28:35 CEST »
0
up! nessuno mi può dare una mano?

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:query complessa per ricerca particolare in rubrica
« Risposta #5 il: 22 Ottobre 2011, 20:06:17 CEST »
0
Non riuscivo a capire perkè al posto di email e di organizzation mi ritorna sempre il numero di telefono...poi ho provato a stampare   
String s2 = ContactsContract.CommonDataKinds.Email.DISPLAY_NAME;
String s3 = ContactsContract.CommonDataKinds.Organization.COMPANY;
e ho scopeto ke mi ritornano data1 come ContactsContract.CommonDataKinds.Phone.NUMBER;
perchè succede questo? come posso accedere direttamente al dato email o organizzation?
grazie mille in anticipo

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:query complessa per ricerca particolare in rubrica
« Risposta #6 il: 25 Ottobre 2011, 21:53:27 CEST »
0

Codice: [Seleziona]
select * from table_rubrica WHERE dominio_email LIKE "%gmail.com" or cognome="cognome" or organizzazione="organizzazione"
Salve ragazzi ho provato a scrivere questa query in una stringa epoi passarla al metodo :
Codice (Java): [Seleziona]
String sql= "SELECT ContactsContract.CommonDataKinds.Email.CONTACT_ID FROM ContactsContract.CommonDataKinds.Email.CONTENT_URI WHERE ContactsContract.CommonDataKinds.Email.DATA LIKE %gmail.com";
                 cursor = getContentResolver().query(sql);
ma nn funziona ho provato anche in questo modo ma niente:
Codice (Java): [Seleziona]
cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, new String[] {ContactsContract.CommonDataKinds.Email.CONTACT_ID}, ContactsContract.CommonDataKinds.Email.DATA + " = ?", new String[] {"%gmail.com"}, null);
qualcuno sa darmi una mano a ricercare tutte le email con lo stesso dominio?

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
Re:query complessa per ricerca particolare in rubrica
« Risposta #7 il: 25 Ottobre 2011, 23:51:43 CEST »
0
Salve ragazzi ho provato a scrivere questa query in una stringa epoi passarla al metodo :
Codice (Java): [Seleziona]
String sql= "SELECT ContactsContract.CommonDataKinds.Email.CONTACT_ID FROM ContactsContract.CommonDataKinds.Email.CONTENT_URI WHERE ContactsContract.CommonDataKinds.Email.DATA LIKE %gmail.com";
                 cursor = getContentResolver().query(sql);

Prova ad eseguire questa query:
String sql= "SELECT ContactsContract.CommonDataKinds.Email.CONTACT_ID FROM ContactsContract.CommonDataKinds.Email.CONTENT_URI WHERE ContactsContract.CommonDataKinds.Email.DATA LIKE \"%gmail.com\"";

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
Re:query complessa per ricerca particolare in rubrica
« Risposta #8 il: 26 Ottobre 2011, 00:32:52 CEST »
0
ti ringrazio per la risposta ma il problema è ke nn riesco a passare solo la stringa di sql al metodo ma cmq mi kiede uri e tuto il resto e nno so come fare