Helen Müller
- Forum-Beiträge: 5
28.03.2011, 23:55:44 via Website
28.03.2011 23:55:44 via Website
Hallo zusammen
Bin kurz vor dem Verzweifeln.... schau mir jetzt den Code seit ca. 4 Stunden an und komme einfach nicht dahinter....
Ich habe ein mini- PHP Script das auf einer MySQL DB eine bestimmten Datensatz auslesen soll. (Zur Zeit gibt es auch nur einen Datensatz) Ich erhalte aber immer 'Null' als Ausgabe.
hier mal das Script:
-----------------------------------------
<?php
mysql_connect("localhost","user","passwort");
mysql_select_db("dbname");
$q=mysql_query("SELECT * FROM sortendetail WHERE art>'".$_REQUEST['art']."'");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
mysql_close();
?>
-----------------------------------
und hier der Code:
------------------------------------
private void getDetailsFromServer(String art) {
Log.i(DEBUG_TAG, "getServerData Anfang + " + art);
String result = "";
ArrayList<NameValuePair> nvp = new ArrayList<NameValuePair>();
nvp.add(new BasicNameValuePair("art", art));
InputStream is = null;
// POST
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(KEY_121);
httppost.setEntity(new UrlEncodedFormEntity(nvp));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e(DEBUG_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();
Log.i(DEBUG_TAG, "resultat: " + result);
} catch (Exception e) {
Log.e(DEBUG_TAG, "Error converting result " + e.toString());
}
// parse json data
try {
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
Log.i(DEBUG_TAG, "art: "
+ json_data.getString("art"));
artArr.add(json_data.getString("art"));
Log.i(DEBUG_TAG, "in artarr " + artArr.get(i).toString());
}
} catch (JSONException e) {
Log.e(DEBUG_TAG, "Error parsing data " + e.toString());
}
}
---------------------------------------------------------
Wenn ich das gleich Script mit dem gleichen Code aber die Zeile HttpPost.setEntity auskommentiere bekomme ich eine Antwort....
Debug_Log mit setEntity:
03-28 21:36:11.038: INFO/SortenArtenActivity(1485): getServerData Anfang + Gurke
03-28 21:36:11.488: INFO/SortenArtenActivity(1485): resultat: null
03-28 21:36:11.498: ERROR/SortenArtenActivity(1485): Error parsing data org.json.JSONException: A JSONArray text must start with '[' at character 1 of null
Debug_log ohne setEntitiy:
03-28 21:40:21.958: INFO/SortenArtenActivity(1521): getServerData Anfang + Beere
03-28 21:40:22.328: INFO/SortenArtenActivity(1521): resultat: [{"_id":"1","kategorie":"Gem","art":"Gurke"}]
Ich verstehs nicht. (Ok, hab's auch nicht so mit PHP und in Android bin ich auch noch neu.....) Hoffe sehr, dass mir jemand helfen kann, obwohl das Thema auch schon behandelt wurde....
Bin kurz vor dem Verzweifeln.... schau mir jetzt den Code seit ca. 4 Stunden an und komme einfach nicht dahinter....
Ich habe ein mini- PHP Script das auf einer MySQL DB eine bestimmten Datensatz auslesen soll. (Zur Zeit gibt es auch nur einen Datensatz) Ich erhalte aber immer 'Null' als Ausgabe.
hier mal das Script:
-----------------------------------------
<?php
mysql_connect("localhost","user","passwort");
mysql_select_db("dbname");
$q=mysql_query("SELECT * FROM sortendetail WHERE art>'".$_REQUEST['art']."'");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
mysql_close();
?>
-----------------------------------
und hier der Code:
------------------------------------
private void getDetailsFromServer(String art) {
Log.i(DEBUG_TAG, "getServerData Anfang + " + art);
String result = "";
ArrayList<NameValuePair> nvp = new ArrayList<NameValuePair>();
nvp.add(new BasicNameValuePair("art", art));
InputStream is = null;
// POST
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(KEY_121);
httppost.setEntity(new UrlEncodedFormEntity(nvp));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e(DEBUG_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();
Log.i(DEBUG_TAG, "resultat: " + result);
} catch (Exception e) {
Log.e(DEBUG_TAG, "Error converting result " + e.toString());
}
// parse json data
try {
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
Log.i(DEBUG_TAG, "art: "
+ json_data.getString("art"));
artArr.add(json_data.getString("art"));
Log.i(DEBUG_TAG, "in artarr " + artArr.get(i).toString());
}
} catch (JSONException e) {
Log.e(DEBUG_TAG, "Error parsing data " + e.toString());
}
}
---------------------------------------------------------
Wenn ich das gleich Script mit dem gleichen Code aber die Zeile HttpPost.setEntity auskommentiere bekomme ich eine Antwort....
Debug_Log mit setEntity:
03-28 21:36:11.038: INFO/SortenArtenActivity(1485): getServerData Anfang + Gurke
03-28 21:36:11.488: INFO/SortenArtenActivity(1485): resultat: null
03-28 21:36:11.498: ERROR/SortenArtenActivity(1485): Error parsing data org.json.JSONException: A JSONArray text must start with '[' at character 1 of null
Debug_log ohne setEntitiy:
03-28 21:40:21.958: INFO/SortenArtenActivity(1521): getServerData Anfang + Beere
03-28 21:40:22.328: INFO/SortenArtenActivity(1521): resultat: [{"_id":"1","kategorie":"Gem","art":"Gurke"}]
Ich verstehs nicht. (Ok, hab's auch nicht so mit PHP und in Android bin ich auch noch neu.....) Hoffe sehr, dass mir jemand helfen kann, obwohl das Thema auch schon behandelt wurde....
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.