Jakiego lotu?
🙂
poleTextowe.setText(text)
o to chodzi?
W javie są connectory do baz SQL, więc teoretycznie mógłbyś pominąć PHP.
Nie zalecam tego jednak (no chyba że robisz na szybko apkę tylko dla siebie), bo wiąże się to z mniejszym bezpieczeństwem (zaszywasz dane do bazy w apce).
Najlepiej wystawić API w PHPie i z niego korzystać, rzucając requestami.
Miało być z logu, nie lotu. Odpisywałem z telefonu i t9 zadziałał nieprawidłowo.
Na razie korzystam z tabeli utworzonej pod znaleziony kod, jednak po uzyskaniu połączenia i odbierania danych wszystko przerobię według własnych potrzeb.
Przykładowo, jeśli fragment kodu odpowiedzialny za parsowanie danych z JSON wygląda następująco:
try
{
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
Log.i("log_tag", "id: " + json_data.getInt("id") +
", name: " + json_data.getString("name") +
", sex: " + json_data.getInt("sex") +
", birthyear: " + json_data.getInt("birthyear")
);
}
} catch (
JSONException e
)
{
Log.e("log_tag", "Error parsing data " + e.toString());
}
to jak wyświetlić odebrane dane?
Poza tym mam problem z połączeniem z bazą, MySQL workbench w ogóle nie widzi połączenia.
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http:/10.0.2.2/login.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
} catch (
Exception e
)
{
Log.e("log_tag", "Error in http connection " + e.toString());
}
//convert response to string
try
{
InputStream is = null;
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());
}
Powyższe odpowiada za połączenie ze skryptem php, sam plik php wygląda tak:
<?php
mysql_connect("localhost:3306","username","password");
mysql_select_db("bugtracker");
$q=mysql_query("SELECT * FROM people WHERE birthyear>'".$_REQUEST['year']."'");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
?>
Powiedzcie proszę, co jest nie tak i jak uzyskać połączenie. Póki co nie wiem, czy emulator nie łączy się z php, czy php z bazą, ale inne pliki php wykonują się prawidłowo.