Ciao ragazzi,
sto cercando di sviluppare un'applicazione android basata su un database sql interrogato tramite php.
Come suggerito dal mio professore ho scaricato wamp e ho creato all'interno questa tabella:
tabella utentiregistrati
id_utente
nome
cognome
username
password
Ho intenzione di fare 2 activity nella mia applicazione...Una di login e l'altra di registrazione e controllare all'interno della tabella utenti registrati se l'utente è già presente o meno. se sono nella pagina di login controllo se nome utente e password corrispondono con gli utenti nella mia tabella altrimenti verranno reindirizzai alla pagina di registrazione.In questa acitivi si procederà all'inserimento all'interno della tabella del mio database del nuovo utente che dovrà riempire un form.
Questo è il codice che ho sviluppato fino adesso..
abbiamo 4 activity, la prima che prevede due bottoni, uno per andare nella pagina di login e una per andare nella pagina registrazione, una volta che si è ad esempio nella pagina di login, ho degli edit text all'interno dei quali vanno inseriti i dati e una volta che si spinge invia,vado in una altra activity query che richiama a sua volta l'activity ConnessioneDb.
Pagina di login
public class CsrForumActivityLogin extends Activity{
private Button bottoneInvia_login;
private Button bottoneAnnulla_login;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
bottoneInvia_login= (Button) findViewById(R.id.bottoneInvia_login);
bottoneAnnulla_login= (Button) findViewById(R.id.bottoneAnnulla_login);
View.OnClickListener gestore = new View.OnClickListener() {
public void onClick(View view) {
switch(view.getId()){
case R.id.bottoneInvia_login:
Intent connessioneIntent = new Intent (CsrForumActivityLogin.this, query.class);
startActivity(connessioneIntent);
break;
case R.id.bottoneAnnulla_login:
//nel caso si spinga annulla, si ritorna alla pagina principale
Intent registratiIntent = new Intent (CsrForumActivityLogin.this, CsrForumActivity.class);
startActivity(registratiIntent);
break;
}
}
};
bottoneInvia_login.setOnClickListener(gestore);
bottoneAnnulla_login.setOnClickListener(gestore);
}
};Pagina query
public class query extends Activity {
/** Called when the activity is first created. */
TextView txtQuery;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_item);
txtQuery=(TextView)findViewById(R.id.Text1);
String result=ConnessioneDb.send("SELECT * FROM utentiregistrati");
txtQuery.setText(result);
}
}Pagina di connessione
public class ConnessioneDb {
/////////// Public method to send Query ///////////
public static String send(String query) {
String result = "0";
InputStream is = null;
//the query to send
ArrayList<NameValuePair> querySend = new ArrayList<NameValuePair>();
querySend.add(new BasicNameValuePair("querySend",query));
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
//ci va l'ip pubblico del proprio computer trovato tramite www.whatismyip.com
HttpPost httppost = new HttpPost("http://93.42.218.78/prova.php");
httppost.setEntity(new UrlEncodedFormEntity(querySend));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(
new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result: "+e.toString());
}
Log.i("SendQUERY", result);
return result;
}
}Ho alcuni problemi nel capire come leggere i dati dagli edittext e inviarli alle pagine php dove interrogo il mio database.
Altra domanda è meglio interrogare il database nelle pagine php o in java?
se volessi fare le query all'interno della pagina query, come vanno scritte??per esempio per vedere se il valore inserito negli edit text è uguale ai valori del database.