Du bist nicht angemeldet.

1

Sonntag, 6. Mai 2012, 12:53

Alter in Edit einfügen

Hallo.

Ich habe mir gedacht ich baue im Profile das Alter ein.. MySQL Tabelle 'alter' angelegt.

1. Client.java

Bei private String name;' und darunter hinzu: (über realname gesetzt.)

Java-Quelltext

1
private String alter;


Hier auch über Realname

Java-Quelltext

1
2
3
public String getAlter() {
    return alter;
}


Auch hier das selbe, Alter über Realname

Java-Quelltext

1
2
3
4
5
6
7
}
 
public void setAlter(String alter) {
    this.alter = alter;


}


Bei 'this.name = rs.getString("name");' in der loadStats()-Methode (auch hier über Realname)

Java-Quelltext

1
alter = rs.getString("alter");



2. CommandParser.java

Hier wollte ich euch das Beispiel auch zeigen, da durch wird jedoch dieser Forumsbeitrag immer zerstört.

http://img5.myimg.de/string7113d.jpg

Soweit hat alles geklappt somit ist das Feld ,,Alter'' im Profile
angelegt und kann auch benutzt werden.. In der MySQL Datenbank kann ich
bei Alter was eintragen wird auch im Profile korrekt angezeigt das
Alter..

Nun wollte ich es im /edit intregrieren damit man es nicht über die Datenbank eintragen muss oder ändern muss.


Hier bekomme ich Probleme
Ich habe mich an dieses Beispiel orientiert:

Java-Quelltext

1
2
3
4
Panel panel8 = new Panel();
        panel8.addComponent(new Label("Real Name: "));
        panel8.addComponent(new TextField(15, client.getRealName()));
        popup.addPanel(panel8);


und habe daher darüber einfach:

Java-Quelltext

1
2
3
4
Panel panel9 = new Panel();
        panel9.addComponent(new Label("Alter: "));
        panel9.addComponent(new TextField(15, client.getAlter()));
        popup.addPanel(panel9);


eingefügt (also auch hier über Realname)

3. EditHandler

Java-Quelltext

1
package handler; import knuddels.Client;import tools.popup.Popup;import knuddels.Server;import tools.KCodeParser; public class EditHandler {    public static void handle(String[] tokens, Client client) {        String realname = tokens[3].trim();        String stadt = tokens[4].trim();        String land = tokens[5].trim();        String hobbys = tokens[6].trim();        String job = tokens[7].trim();        String motto = tokens[8].trim();                realname = KCodeParser.parse(realname, !client.isModerator(), 0, 10, 20);        realname = Server.get().parseSmileys(realname);        stadt = KCodeParser.parse(stadt, !client.isModerator(), 0, 10, 20);        stadt = Server.get().parseSmileys(stadt);        land = KCodeParser.parse(land, !client.isModerator(), 0, 10, 20);        land = Server.get().parseSmileys(land);        hobbys = KCodeParser.parse(hobbys, !client.isModerator(), 0, 10, 20);        hobbys = Server.get().parseSmileys(hobbys);        job = KCodeParser.parse(job, !client.isModerator(), 0, 10, 20);        job = Server.get().parseSmileys(job);        motto = KCodeParser.parse(motto, !client.isModerator(), 0, 10, 20);        motto = Server.get().parseSmileys(motto);                        String errors = "";                   if(realname.length() > 50) {            errors += String.format("#Deine Angabe unter  _'Real Name'_ ist %s Zeichen _zu lang_.", (realname.length()-50));        }                   if(stadt.length() > 50) {            errors += String.format("#Deine Angabe unter  _'Stadt'_ ist %s Zeichen _zu lang_.", (stadt.length()-50));        }                   if(land.length() > 50) {            errors += String.format("#Deine Angabe unter  _'Land'_ ist %s Zeichen _zu lang_.", (land.length()-50));        }                   if(hobbys.length() > 80) {             errors += String.format("#Deine Angabe unter  _'Hobbys'_ ist %s Zeichen _zu lang_.", (realname.length()-80));        }                   if(job.length() > 50) {            errors += String.format("#Deine Angabe unter  _'Job'_ ist %s Zeichen _zu lang_.", (job.length()-50));        }                   if(motto.length() > 400) {            errors += String.format("#Deine Angabe unter  _'Motto'_ ist %s Zeichen _zu lang_.", (motto.length()-400));        }                   if(!errors.isEmpty()) {            client.send(Popup.create("Problem", "Problem", String.format("#Bei der Änderung deiner Daten sind folgende _Probleme_ aufgetreten:#%s", errors), 400, 250));            return;        }                   client.send(Popup.create("Änderungen übernommen", "Änderungen übernommen", "#Alle Änderungen wurden _gespeichert_.", 400, 250));        client.setRealName(realname);        client.setStadt(stadt);        client.setLand(land);        client.setHobbys(hobbys);        client.setJob(job);        client.setMotto(motto);    }}



Habe ich wie folgt abgeändert:

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package handler; import knuddels.Client;import tools.popup.Popup;import knuddels.Server;import tools.KCodeParser; public class EditHandler {    public static void handle(String[] tokens, Client client) {        String alter = tokens[2].trim();


        	String realname = tokens[3].trim();
          String stadt = tokens[4].trim();        String land = tokens[5].trim();        String hobbys = tokens[6].trim();        String job = tokens[7].trim();        String motto = tokens[8].trim();        

    	alter = KCodeParser.parse(alter, !client.isModerator(),0, 10, 20);    	alter = Server.get().parseSmileys(alter);

          realname = KCodeParser.parse(realname, !client.isModerator(), 0, 10, 20);        realname = Server.get().parseSmileys(realname);        stadt = KCodeParser.parse(stadt, !client.isModerator(), 0, 10, 20);        stadt = Server.get().parseSmileys(stadt);        land = KCodeParser.parse(land, !client.isModerator(), 0, 10, 20);        land = Server.get().parseSmileys(land);        hobbys = KCodeParser.parse(hobbys, !client.isModerator(), 0, 10, 20);        hobbys = Server.get().parseSmileys(hobbys);        job = KCodeParser.parse(job, !client.isModerator(), 0, 10, 20);        job = Server.get().parseSmileys(job);        motto = KCodeParser.parse(motto, !client.isModerator(), 0, 10, 20);        motto = Server.get().parseSmileys(motto);                        String errors = "";           

    	if(alter.length() > 50 {       	errors += String.format("#Deine Angabe unter _Alter_ ist %s Zeichen _zu lang_.", (alter.length()-50));    	 }
          if(realname.length() > 50) {            errors += String.format("#Deine Angabe unter  _'Real Name'_ ist %s Zeichen _zu lang_.", (realname.length()-50));        }                   if(stadt.length() > 50) {            errors += String.format("#Deine Angabe unter  _'Stadt'_ ist %s Zeichen _zu lang_.", (stadt.length()-50));        }                   if(land.length() > 50) {            errors += String.format("#Deine Angabe unter  _'Land'_ ist %s Zeichen _zu lang_.", (land.length()-50));        }                   if(hobbys.length() > 80) {             errors += String.format("#Deine Angabe unter  _'Hobbys'_ ist %s Zeichen _zu lang_.", (realname.length()-80));        }                   if(job.length() > 50) {            errors += String.format("#Deine Angabe unter  _'Job'_ ist %s Zeichen _zu lang_.", (job.length()-50));        }                   if(motto.length() > 400) {            errors += String.format("#Deine Angabe unter  _'Motto'_ ist %s Zeichen _zu lang_.", (motto.length()-400));        }                   if(!errors.isEmpty()) {            client.send(Popup.create("Problem", "Problem", String.format("#Bei der Änderung deiner Daten sind folgende _Probleme_ aufgetreten:#%s", errors), 400, 250));            return;        }                   client.send(Popup.create("Änderungen übernommen", "Änderungen übernommen", "#Alle Änderungen wurden _gespeichert_.", 400, 250));    	client.setAlter(alter);


              client.setRealName(realname);
            client.setStadt(stadt);        client.setLand(land);        client.setHobbys(hobbys);        client.setJob(job);        client.setMotto(motto);    }}


So das war alles.

in /edit erscheint auch das Feld ,,Alter'' man kann es auch bearbeiten
und es steht auch das Alter drinne was ich bereits zuvor mir durch die
datenbank gegeben habe, wenn ich aber nun unter /edit irgendwas schreibe
bei Alter oder in einen anderen Feld, und auf Speichern gehe, ist
danach die ganze Whois verrückt, bedeutet Alle Einträge verschieben sich
um ein Feld nach unten.

Dann ist Alter bei Realname, und Realname bei Land und Land bei Stadt etc..
was mache ich falsch?
Danke schonmal vorab, für eure Hilfe!

Euer Coka!

Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von »CokaColaBoy« (6. Mai 2012, 13:14)


2

Sonntag, 6. Mai 2012, 13:08

Wo speicherst du das Alter denn ab?
Ich bin mir ziemlich sicher, dass du mit den Parametern durcheinander gekommen bist, deshalb bitte einmal deine saveStats Methode posten und ggf. noch die Methode, mit der du das Alter speicherst (FALLS solch eine Methode exitieren sollte)

3

Sonntag, 6. Mai 2012, 13:16

Sorry irgendwie habe ich Probleme mit euren Boards.. Java Codes werden nicht angenommen und mainpulieren stattdessen den Beitrag, oder wie man oben sehen kann bei Teil 3 statt nach unten alles gelistet ordentlich zeigt er einen balken nachts rechs, und man darf dort in einen miniscrollfenster suchen... was ich meine... Was ist denn los auf einmal mit dem Forum?

Localhost

Ehemaliger Supporter

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

4

Sonntag, 6. Mai 2012, 13:25

Das mit dem [java]-Bug ist wegen des Prozentzeichens.

Zu deinem Fehler:
Du liest das Alter via tokens[2] aus, was falsch ist, denn tokens[2] ist der Button Text (Speichern oder OK z.B.)
Alter muss zu 3, Real Name zu 4 usw. ;)
No support via message.

"Der gute Programmierer ist nicht der, der keine Fehler macht, sondern der, der seine Fehler rasch findet und behebt."

5

Sonntag, 6. Mai 2012, 13:36

Das ist alles?

ich hatte zuvor auch mal komplett die EditHandler weggelassen und da nichts reingemacht nur in der CommandParser.java ehm das mit panel9 blaaa über panel 8 also über realname

da war auch schon dass sich alles verschoben hat um eins nach unten beim speichern....?

Localhost

Ehemaliger Supporter

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

6

Sonntag, 6. Mai 2012, 14:02

Ja, nur da müsste der Fehler liegen -- wird ja nur falsch gespeichert.
No support via message.

"Der gute Programmierer ist nicht der, der keine Fehler macht, sondern der, der seine Fehler rasch findet und behebt."

7

Sonntag, 6. Mai 2012, 14:03

Habe es nun korrigiert.. nun ist bei Alter tatsächlich Alter.. und bei name tatsächlich name.. beim speichern
Wenn ich jedoch off gehe oder den Server neustarte sind jedoch wieder die alten daten im Profile, er speichert es also nicht richtig.
wenn man dann die /edit auf macht, steht bei Alter der Name statt das Alter.. oder es steht bei /edit überall nichts drinne. halb wohl im Profile alter und name stehen durch datenbank.. wo könnte der fehler nun liegen?

Localhost

Ehemaliger Supporter

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

8

Sonntag, 6. Mai 2012, 14:13

saveStats() Methode in der Client-Klasse erweitert?
No support via message.

"Der gute Programmierer ist nicht der, der keine Fehler macht, sondern der, der seine Fehler rasch findet und behebt."

9

Sonntag, 6. Mai 2012, 14:33

wie meinst du das?
habe nur bei den anderen sachen wo realname, stadt etc waren
das drüber gemacht:

Bei 'this.name = rs.getString("name");' in der loadStats()-Methode (auch hier über Realname)

Java-Quelltext

1
					alter = rs.getString("alter");



Muss das hier rein : ?

Java-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private void saveStats() {
    	PoolConnection pcon = ConnectionPool.getConnection();
    	PreparedStatement ps = null;

    	try {
        	Connection con = pcon.connect();
        	ps = con.prepareStatement("UPDATE `accounts` SET `kisses` = ?, `knuddels` = ?, `onlineTime` = ?, `ipAddress` = ?, `readme` = ?, `realname` = ?, `event` = ?, `team` = ?, `id` = ?, `comment` = ?, `cmcomment` = ?, `stadt` = ?, `land` = ?, `hobbys` = ?, `job` = ?, `motto` = ?, `like` = ?, `wordmixpoints` = ? WHERE `name` = ?");
        	ps.setInt(1, kisses);
        	ps.setInt(2, knuddels);
        	ps.setInt(3, getOnlineTime());
        	ps.setString(4, ipAddress);
        	ps.setString(5, readme);
        	ps.setString(6, realname);
        	ps.setString(7, event);
        	ps.setString(8, team);
        	ps.setString(9, id);
        	ps.setString(10, comment);
        	ps.setString(11, cmcomment);
        	ps.setString(12, stadt);
        	ps.setString(13, land);
        	ps.setString(14, hobbys);
        	ps.setString(15, job);
        	ps.setString(16, motto);
        	ps.setString(17, like);
        	ps.setFloat(18, wordmixPoints);
        	ps.setString(19, name);
        	ps.executeUpdate();
    	} catch (SQLException e) {
        	e.printStackTrace();

Localhost

Ehemaliger Supporter

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

10

Sonntag, 6. Mai 2012, 15:09

Richtig, muss 'alter' hinzugefügt werden.
No support via message.

"Der gute Programmierer ist nicht der, der keine Fehler macht, sondern der, der seine Fehler rasch findet und behebt."