Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it L'avatar di BlueSmurf
    Registrato dal
    Sep 2015
    residenza
    Bari
    Messaggi
    42

    [Android] Connessione a db Mysql tramite Php

    Buongiorno,
    ho appreso che android lavora meglio con una connessione a db Mysql tramite uno script Php e non tramite il connector.
    Ho seguito varie guide, il file php funziona, ho creato una semplice interfaccia con list e button (solo per test)

    Ho utilizzato HttpURLConnection


    URL url = new URL("http://10.0.2.2/scripts/getComuni.php");
    HttpURLConnection connection = (HttpURLConnection)url.openconnection();
    connection.connect();

    Questo è il pezzo di codice dove si blocca il debugger; si blocca precisamente alla stringa dell'URL. Come se non leggesse nulla

    Ho messo nel manifest <uses-permission android:name="android.permission.INTERNET"/>



  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da BlueSmurf Visualizza il messaggio
    ho appreso che android lavora meglio con una connessione a db Mysql tramite uno script Php e non tramite il connector.
    Sì, infatti come dicono qui: "JDBC is designed for high-bandwidth, low-latency, highly-reliable network connections".
    Su un dispositivo mobile hai al massimo il wi-fi o peggio una rete dati mobile. E quindi "high-bandwidth", "low-latency" e "highly-reliable" sono/possono essere alquanto vaghi ...

    Il punto è che se fai request HTTP per ottenere dei dati:
    a) La tecnologia server-side è indifferente per il client. A parte variazioni sul url (es. un url che termina in .php piuttosto che altro), il fatto che i dati vengano generati da PHP, Perl, Python, Ruby, Java ecc.. di per sé non conta per il client.
    b) Devi valutare ed imporre tutta una serie di cose: dagli url, al formato dei dati (XML? JSON?), alla gestione della security.

    Quote Originariamente inviata da BlueSmurf Visualizza il messaggio
    URL url = new URL("http://10.0.2.2/scripts/getComuni.php");
    HttpURLConnection connection = (HttpURLConnection)url.openconnection();
    connection.connect();

    Questo è il pezzo di codice dove si blocca il debugger; si blocca precisamente alla stringa dell'URL.
    Innanzitutto 10.0.2.2 è un indirizzo "privato" dentro una rete locale, quindi andrebbe bene per il momento solo per qualche prova e nulla di più serio/definitivo. A quel indirizzo presumo ci sia una macchina che dovrebbe esporre un server web HTTP sulla porta 80. Hai verificato che tale porta sia accessibile da altri host sulla rete locale? Intendo dire: tutte le solite questioni su firewall (in sw sulla macchina) o altro.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di BlueSmurf
    Registrato dal
    Sep 2015
    residenza
    Bari
    Messaggi
    42
    Ho cominciato da pocho giorni lo sviluppo Android e il php da 1/2. Ho sempre e solo trovato guide con query tramite php verso database Mysql
    E cercavo una procedura semplice ed intuibile per popolare un arraylist di tutti i dati di questo database (è per un codice fiscale e contiene tutti i comuni italiani con i relativi codici) ma tutti fanno esempi di log in o esempi molto vaghi

    Purtroppo popolare un arraylist di 8000 stringhe non è possibile tramite codice normale (mi dice codice troppo lungo)



    Per quanto riguarda la porta 80 non ho verificato, ma volevo capire, se mettessi il file php online su un sito di hosting(esempio mega) va bene? E poi un esempio completo per popolare l'arraylist?

    Grazie mille ��

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da BlueSmurf Visualizza il messaggio
    Ho cominciato da pocho giorni lo sviluppo Android e il php da 1/2. Ho sempre e solo trovato guide con query tramite php verso database Mysql
    E cercavo una procedura semplice ed intuibile per popolare un arraylist di tutti i dati di questo database (è per un codice fiscale e contiene tutti i comuni italiani con i relativi codici) ma tutti fanno esempi di log in o esempi molto vaghi
    Lato Android, per fare le request HTTP, a livello basilare ci sono le classi nel package java.net. Che è tutta roba che esiste anche nella piattaforma standard Java SE per i PC. Quindi tutto quello che trovi a riguardo, anche se fosse per Java SE va bene anche per Android.
    Tipo sul tutorial ufficiale Oracle: Lesson: Working with URLs.
    Questa però è solo una parte del problema: cosa deve contenere la response? Se fossero dati un po' più strutturati, con più informazioni per ciascun "record di informazione", allora sarebbe forse più appropriato rappresentarli in XML o JSON. Se invece al limite fossero solo N stringhe, potresti metterle una per riga e a quel punto basterebbe leggerle banalmente con BufferedReader.

    Lato PHP, purtroppo non sono ferrato/qualificato, pur avendo fatto qualcosa tanti anni fa. Comunque trovi tantissime informazioni/esempi su come fare query su MySQL da PHP. Una volta che sai come ottenere i dati, torniamo alla questione di prima: una response fatta "a righe" o qualcosa di più strutturato in XML o JSON? Se è a righe, è sicuramente banale. Se fosse XML/JSON c'è bisogno di API apposite che in questo momento non so dire se sono integrate nel runtime standard del PHP o se servono moduli aggiuntivi.

    Quote Originariamente inviata da BlueSmurf Visualizza il messaggio
    se mettessi il file php online su un sito di hosting(esempio mega) va bene?
    Se parli di quei siti di "file sharing" no, non vanno bene. Non devi condividere con altri il file .php puro che è il sorgente così come lo scrivi tu (e che vedrebbero gli altri).
    Deve essere un hosting per siti web configurato per passare i .php all'interprete PHP in modo che siano "eseguiti" lato server. E chiaramente un hosting con disponibilità di almeno 1 DB MySQL.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di BlueSmurf
    Registrato dal
    Sep 2015
    residenza
    Bari
    Messaggi
    42
    Quote Originariamente inviata da andbin Visualizza il messaggio

    Se parli di quei siti di "file sharing" no, non vanno bene. Non devi condividere con altri il file .php puro che è il sorgente così come lo scrivi tu (e che vedrebbero gli altri).
    Deve essere un hosting per siti web configurato per passare i .php all'interprete PHP in modo che siano "eseguiti" lato server. E chiaramente un hosting con disponibilità di almeno 1 DB MySQL.
    Trovato il problema e comunque lo immaginavo, dato che semplicemente importando il file da un filesharing non avvierei nulla... Gran rottura

    per questo motivo penso di optare per un file json inserito direttamente nel progetto, e di fare il parsing su quello. Più semplice e soprattutto non costringe ad usare la connessione ad internet Anche se devo capire come si fa il parsing XD
    Ultima modifica di BlueSmurf; 27-12-2015 a 13:15

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da BlueSmurf Visualizza il messaggio
    per questo motivo penso di optare per un file json inserito direttamente nel progetto, e di fare il parsing su quello. Più semplice e soprattutto non costringe ad usare la connessione ad internet Anche se devo capire come si fa il parsing XD
    Da quanto ho capito, hai bisogno di un database dei comuni italiani. E chiaramente i comuni non è che cambiano ogni settimana o ogni mese, quindi una base dati interna alla applicazione può essere accettabile.

    Ma prima di lanciarsi su JSON, parsing, ecc... hai valutato l'utilizzo del database SQLite integrato negli Android?

    Se invece ti interessa proprio JSON, sappi che ci sono svariate API per gestire dati JSON. Da quanto vedo sulla documentazione ufficiale Android, ci sono JsonReader/JsonWriter.
    Ma esistono svariate librerie esterne usabili in Java (e sicuramente anche in Android) tipo la Google GSON o la Jackson.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di BlueSmurf
    Registrato dal
    Sep 2015
    residenza
    Bari
    Messaggi
    42
    Non sapevo nulla di sqlite, come posso sfruttarlo e importare i dati in questo nuovo DB?

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Quote Originariamente inviata da BlueSmurf Visualizza il messaggio
    Non sapevo nulla di sqlite, come posso sfruttarlo e importare i dati in questo nuovo DB?
    Ti consiglio di tenere sotto mano e di seguire la documentazione ufficiale (ci trovi tutto):
    http://developer.android.com/guide/t...a-storage.html


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it L'avatar di BlueSmurf
    Registrato dal
    Sep 2015
    residenza
    Bari
    Messaggi
    42
    Grazie mille a tutti



    Ho creato un db sqlite ora rimane il problema di importarlo nel progetto android

  10. #10
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,704
    Non ti voglio sballottare tra mysql+json e sqlite ma io ho usato il primo sistema, facile da mantenere su un qualsiasi server anche gratuito (altervista nel mio caso).
    Il file php di lettura è banale e non mi soffermerei.
    Per leggere il response dal server ho usato la classe Volley che evolve di parecchio la "vecchia" richiesta HttpURLConnection con tutti i limiti che ha con JsonObject (e parsing a seguire), per visualizzare la lista RecyclerView, necessaria al posto della Listview quando si manipola un elevato numero di records.
    Non ho lunga esperienza in Android per cui riporto la mia esperienza perchè semplice, flessibile e estremamente funzionale ma non pretendo sia la migliore
    Ultima modifica di Misterxxx; 30-12-2015 a 15:14
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.