A
akkulader
Ambitioniertes Mitglied
- 0
Moin moin
Ich plane, meine App mit dem Internetz zu verbinden.
Bis jetzt habe ich als beste Möglichkeit für mich entdeckt, bei meinem Hoster eine PHP Datei zu erstellen, die ich dann in meiner Activity per HTTP Request ansprechen kann.
Jetzt folgende Anfängerfragen:
1) Ist das die einfachste und lohnendste Methode?
2) Kann ich auch verschiedene Tabellen der Datenbank abfragen und deren Daten in anderen Tabellen abspeichern?
(Eine Tabelle enthält bei mir beispielsweise die Spieltage und die andere die Mannschaften)
Ich meine: Es steht in der PHP Datei geschrieben, welche Tabelle angesprochen werden soll.
4) Kann man auch nur gewisse Werte aus der Datenbank auslesen und diese direkt speichern, ohne nen ganzen Stream zu bekommen, den man mühsam aufsplitten muss.
Also so in der Art: int tore = datenbank.getTore(mannschaftA)
3) Vor allem: Kennt ihr ein gutes Tutorial dafür?^^
Ich wäre euch sehr dankbar für Hilfe!!!
Hier mal kurz meine PHP und meine Activity, damit ihr seht, was ich meine.
Ich plane, meine App mit dem Internetz zu verbinden.
Bis jetzt habe ich als beste Möglichkeit für mich entdeckt, bei meinem Hoster eine PHP Datei zu erstellen, die ich dann in meiner Activity per HTTP Request ansprechen kann.
Jetzt folgende Anfängerfragen:
1) Ist das die einfachste und lohnendste Methode?
2) Kann ich auch verschiedene Tabellen der Datenbank abfragen und deren Daten in anderen Tabellen abspeichern?
(Eine Tabelle enthält bei mir beispielsweise die Spieltage und die andere die Mannschaften)
Ich meine: Es steht in der PHP Datei geschrieben, welche Tabelle angesprochen werden soll.
4) Kann man auch nur gewisse Werte aus der Datenbank auslesen und diese direkt speichern, ohne nen ganzen Stream zu bekommen, den man mühsam aufsplitten muss.
Also so in der Art: int tore = datenbank.getTore(mannschaftA)
3) Vor allem: Kennt ihr ein gutes Tutorial dafür?^^
Ich wäre euch sehr dankbar für Hilfe!!!
Hier mal kurz meine PHP und meine Activity, damit ihr seht, was ich meine.
Code:
<?php
$host="localhost"; //replace with database hostname
$username="username"; //replace with database username
$password="password"; //replace with database password
$db_name="dbname"; //replace with database name
mysql_connect("$host","$username","$password");
mysql_select_db("$db_name")or die("cannot select DB");
$q=mysql_query("SELECT * FROM user");
while($e=mysql_fetch_assoc($q)) $output[]=$e;
print(json_encode($output));
mysql_close();
?>
package de.example.dbtest;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends ListActivity implements OnClickListener {
InputStream is;
ArrayList<String> results = new ArrayList<String>();
JSONObject json_data;
Boolean dataComplete = false;
private String line;
private String result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(this);
getData();
while(!this.dataComplete){
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
this.fillList();
}
@Override
public void onClick(View v)
{
Runnable r = new Runnable(){
@Override
public void run()
{
getData();
}
};
Thread t = new Thread(r);
t.start();
}
public void getData(){
Thread t = new Thread(){
String result ="";
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
public void run()
{
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("link zur datenbank");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Fehler bei der http Verbindung" + e.toString());
}
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());
}
try{
JSONArray jArray = new JSONArray(result);
for(int i = 0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
results.add((String) json_data.getString("id") + " " + json_data.get("name"));
}
dataComplete = true;
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
}
};
t.start();
}
public void fillList()
{
this.setListAdapter(new ArrayAdapter <String>(this, android.R.layout.simple_list_item_1, results));
}