Mysql daten über app: -löschen, -erstellen, -verwende

  • Antworten:8
L3322
  • Forum-Beiträge: 467

28.11.2010, 11:32:34 via Website

Hi,
also ich wollte nicht in den anderen Thread über das auslesen von mysql schreiben da ich einige Fragen habe und es nicht nur ums auslesen geht!

Ich habe gestern versucht Daten von meiner Mysql Datenbank über eine php datei auszulesen, und auch geschafft.

Zur frage 1: Ich habe es davor nur die id und den namen in eine TextView geladen nun wollte ich aber die ganze datenbank in einer ListView anzeigen!
mir wird aber nur das letzte Ergebnis angezeigt.
Code:
1try{
2 JSONArray jArray = new JSONArray(result);
3 for(int i=0;i<jArray.length();i++){
4 json_data = jArray.getJSONObject(i);
5 }
6 }
7 catch(JSONException e){
8 Log.e("log_tag", "Error parsing data "+e.toString());
9 }
10 handler.sendEmptyMessage(0);
11 }
12
13 private Handler handler = new Handler() {
14 @Override
15 public void handleMessage(Message msg) {
16 pd.dismiss();
17 try {
18 results.add(Integer.toString(json_data.getInt("id"))+" "+json_data.get("name"));
19 } catch (JSONException e) {
20 Log.e("", "Folgender fehler beim verwenden der daten: " + e.toString());
21 }
22 filllist();
23 }};
24
25 protected void filllist() {
26 this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
27 }
28
29}

Die Php file ruft einfach mit 'SELECT * FROM user;' alles auf.
Ich hoffe ihr könnt mir zur 1. Frage helfen denn das wäre bisher das wichtigste!!!:smug:

So und jetzt zur Numero 2:
Ich habe noch seeeeehr wenig php Erfahrung!
Und in meiner App muss ich ständig unterschiedlichste Daten anzeigen lassen!
muss ich für alles extra eine Php file erstellen und hochladen? oder kann ich die Abfragen auch direkt mit java formulieren???

Numero 3:
Ich muss für jeden der sich anmeldet nicht nur einen Eintrag in der Tabelle 'user' machen sondern ich muss für jeden Nutzer dann auch noch eine eigene Tabelle erstellen!
Wie kann ich das anstellen das er sich die Daten von der Person holt die sich gerade angemeldet hat?? Also die Tabelle von dem Nutzer der z.B in einem EditText steht!

Danke im vorraus

"Hard work beats talent, when talent fails to work hard"

Antworten
L3322
  • Forum-Beiträge: 467

28.11.2010, 12:11:18 via Website

Okay zu 1.
das habe ich jetzt selbst gelöst:
ich habe einfach die zeile 18 so geändert:
1results.add((String) json_data.get("id") + " "+ json_data.get("name"));
:bashful:

aber zu 2 und 3 brauche ich immer noch eine Antwort!

Danke

"Hard work beats talent, when talent fails to work hard"

Antworten
Alexander R.
  • Forum-Beiträge: 1.148

28.11.2010, 12:42:12 via App

Hi,
wenn du das alles gut hinbekommst wäre es super, wenn du es ins "Code Snippet"-Forum packen könntest, da das doch alles kompilizierter ist.

Gruß Alexander

Antworten
L3322
  • Forum-Beiträge: 467

28.11.2010, 13:02:55 via Website

Ich werde dann mal mein erstes Tutorial anschmeißen!

Weißt du auch nichts über die 2 und 3. Frage?

"Hard work beats talent, when talent fails to work hard"

Antworten
Alexander R.
  • Forum-Beiträge: 1.148

28.11.2010, 13:17:56 via App

Leider hab ich da auch nicht so grosse erfahrung

Gruß Alexander

Antworten
L3322
  • Forum-Beiträge: 467

28.11.2010, 14:39:12 via Website

Geht es vielleicht dass die php datei so ausschaut:
Create table 'variable'...
und dass die variable über die app sozusagen an die Php datei geschickt wird?

— geändert am 28.11.2010, 14:39:26

"Hard work beats talent, when talent fails to work hard"

Antworten
L3322
  • Forum-Beiträge: 467

28.11.2010, 16:04:17 via Website

Okay ich glaube ich habe herausgefunden in welche Richtung ich muss!
Ich habe es so versucht:
1ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
2 nameValuePairs.add(new BasicNameValuePair("re", "re"));
3 try{
4 HttpClient httpclient = new DefaultHttpClient();
5 HttpPost httppost = new HttpPost("meinehomepage.de/mein.php");
6 httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

und mit die Php:
1<?php
2mysql_connect("localhost","user","mPasswort");
3mysql_select_db("mydb");
4
5$q=mysql_query("Create Table '".$_REQUEST['re']."'");
6while($e=mysql_fetch_assoc($q))
7 $output[]=$e;
8
9print(json_encode($output));
10
11mysql_close();
12?>

Allerdings erstellt es mir dann keine Tabelle!!
Ich schreibe mit dem Editor! also werden mir keine Error angezeigt kann mir jemand den fehler sagen??

"Hard work beats talent, when talent fails to work hard"

Antworten
L3322
  • Forum-Beiträge: 467

29.11.2010, 17:09:04 via Website

Okay das klappt jetzt alles ganz gut wenn ich zum beispiel:
1$q=mysql_query("INSERT INTO user(name, passwort, email)
2 VALUES('".$_REQUEST['regname']."',
3 '".$_REQUEST['regpasswort']."', '".$_REQUEST['regmail']."')");
Daten einfüge!

Aber immernoch bei:
1CREATE TABLE '".$_REQUEST['regname']."'
geht es komischerweise mit und im Browser bekomm ich den Error :
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in XXXXX on line 12 null

Zeile 12:
1while($e=mysql_fetch_assoc($q))

Ganzer Code:
1<?php
2mysql_connect("localhost","user","passwort");
3mysql_select_db("db1143232-mydb");
4
5$q=mysql_query("CREATE TABLE '".$_REQUEST['regname']."'
6(`id` INT( 20 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
7`aktie` VARCHAR( 20 ) NOT NULL ,
8`anzahl` VARCHAR( 20 ) NOT NULL ,
9`geld` VARCHAR( 20 ) NOT NULL
10)");
11
12while($e=mysql_fetch_assoc($q))
13 $output[]=$e;
14
15print(json_encode($output));
16
17mysql_close();
18?>

die tabelle wird auch nicht erstellt!

Danke

— geändert am 29.11.2010, 17:18:54

"Hard work beats talent, when talent fails to work hard"

Antworten
Alexander R.
  • Forum-Beiträge: 1.148

02.12.2010, 03:05:20 via App

Hi,
hast du schon ws, wie man Einträge erstellen kann?

Würde nich über ein Tutorial oder Code Snippet freuen

Gruß Alexander

Antworten