PHP und MySQL

  • Antworten:1
  • Bentwortet
Helen Müller
  • Forum-Beiträge: 5

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.... :*)

Antworten
Helen Müller
  • Forum-Beiträge: 5

29.03.2011, 00:42:13 via Website

ok, das ist jetzt mehr als nur peinlich :*):*):*):*):*) kann ich's auf die späte Stunde schieben????
Hoffe ich werde in Zukunft nicht ignoriert, wenn gleich meine erste Frage etwas daneben war. (Immerhin bin ich selber doch noch darauf gekommen)

Falls es noch andere gibt wie mich.... hier die Lösung:

SELECT * FROM sortendetail WHERE art>'".$_REQUEST['art']."

'art' ist ein String und kann nicht auf > abgefragt werden.

(Ich glaube die vielen $ und ' " . haben mich verwirrt.

schönen abend noch

Antworten