Hallo zusammen,
ich bin neu bei der Programmierung mit Java und stecke seit Tagen an einem Problem fest, das ich einfach nicht gelöst bekomme... ich hoffe, ihr könnt mir hier helfen
Zunächst erst einmal der Code:
Ich arbeite quasi an einem Discord Bot, der für ein Spiel über ein paar Befehle Daten der einzelnen Mitglieder sammeln und entsprechend in der Datenbank speichern soll. Ich bin nun so weit, dass er zwar den eingegeben Text versteht und das auch alles schön einzeln in die Tabellen einträgt, aber wenn ich nun die "strength" aus der Tabelle "stärke" in die Spalte "strength" aus der Tabelle "helden" überspielen will, dann macht er bei diesem Code folgendes: Er spielt nur die letzte der eingegeben Stärken zurück. Beispiel: A 123 B 456 C 789 - er trägt jetzt A B C in die Zeilen der Tabelle 1 ein, 123 456 789 in die Zeilen der Tabelle 2. Schön und gut. Aber nun nimmt er bei meinem Code bei der Zusammenführung nur 789 und trägt das in jede Zeile der Tabelle 1 in die Spalte ein... Also die richtige Spalte erwischt er, aber gibt eben immer nur den letzten Wert wiederholt dort aus... Könnt ihr mir hier helfen, wie wirklich Wert 1 in Zeile 1, Wert 2 in Zeile 2 usw. übertragen wird? Das wäre klasse Bin echt am verzweifeln...
ich bin neu bei der Programmierung mit Java und stecke seit Tagen an einem Problem fest, das ich einfach nicht gelöst bekomme... ich hoffe, ihr könnt mir hier helfen
Zunächst erst einmal der Code:
Java:
else if (ereignis.getMessage().getContentRaw().startsWith(".ha")) {
String name = ereignis.getAuthor().getName();
helden = ereignis.getMessage().getContentRaw().toLowerCase().substring(4);
String helden2 = ereignis.getMessage().getContentRaw().toLowerCase().substring(5);
String[] splitstrength = helden2.trim().split("\\s*[^0-9]+\\s*");
String[] splithelden = helden.trim().split("\\s*[0-9]+\\s*");
Datenbank.onUpdate("CREATE TABLE IF NOT EXISTS held" + name + "(id INTEGER NOT NULL, memberid INTEGER, hero VARCHAR, strength INTEGER)");
Datenbank.onUpdate("CREATE TABLE IF NOT EXISTS stärke" + name + "(id INTEGER NOT NULL, strength)");
for (int i = 0; i < splithelden.length; i++) {
System.out.println(splithelden[i]);
Datenbank.onUpdate("INSERT INTO held" + name + "(id, memberid, hero, strength) VALUES(" + i + ", " + user + ", '" + splithelden[i] + "', '0')");
}
for (int i = 1; i < splitstrength.length; i++){
System.out.println(splitstrength[i]);
Datenbank.onUpdate("INSERT INTO held" + name + "(id, memberid, hero, strength) VALUES(" + i + ", " + user + ", 'nichts', '" + splitstrength[i] + "')");
}
try {
ResultSet ergebnis = Datenbank.onQuery("SELECT strength FROM stärke" + name +"");
String ergStr = "";
while (ergebnis.next()) {
ergStr = ergStr.concat("\n" + ergebnis.getString("strength") + "\n");
}
System.out.println(ergStr);
String[] erg = ergStr.trim().split("\\s*[^0-9]+\\s*");
for (int i = 0; i < erg.length; i++){
System.out.println(erg[i]);
String update = "UPDATE held" + name + " SET strength= '" + erg[i] + "'";
File file = new File("datenbank.db");
String url = "jdbc:sqlite:" + file.getPath();
Connection conn = null;
Statement stmt = null;
conn = DriverManager.getConnection(url);
stmt = conn.createStatement();
stmt.executeUpdate(update);}
} catch (SQLException e) {
e.printStackTrace();; }
Ich arbeite quasi an einem Discord Bot, der für ein Spiel über ein paar Befehle Daten der einzelnen Mitglieder sammeln und entsprechend in der Datenbank speichern soll. Ich bin nun so weit, dass er zwar den eingegeben Text versteht und das auch alles schön einzeln in die Tabellen einträgt, aber wenn ich nun die "strength" aus der Tabelle "stärke" in die Spalte "strength" aus der Tabelle "helden" überspielen will, dann macht er bei diesem Code folgendes: Er spielt nur die letzte der eingegeben Stärken zurück. Beispiel: A 123 B 456 C 789 - er trägt jetzt A B C in die Zeilen der Tabelle 1 ein, 123 456 789 in die Zeilen der Tabelle 2. Schön und gut. Aber nun nimmt er bei meinem Code bei der Zusammenführung nur 789 und trägt das in jede Zeile der Tabelle 1 in die Spalte ein... Also die richtige Spalte erwischt er, aber gibt eben immer nur den letzten Wert wiederholt dort aus... Könnt ihr mir hier helfen, wie wirklich Wert 1 in Zeile 1, Wert 2 in Zeile 2 usw. übertragen wird? Das wäre klasse Bin echt am verzweifeln...