MySQL Daten von Spieler auslesen und im Chat ausgeben?

...komplette Frage anzeigen

3 Antworten

Leider sagt mir deine Frage noch nicht ganz genau was du möchtest.

Möchtest du mehrere Informationen zu einem einzelnen User erfragen (also mehr als nur "Grund")

oder möchtest du den "grund" von mehreren Usern abfragen?

MFG xGlumi

Antwort bewerten Vielen Dank für Deine Bewertung
StaPlerLP 12.07.2017, 09:39

Ich habe eig. mehrere Methoden geschrieben, die genau gleich aufgebaut sind, aber jedoch nur eine andere Spalte auslesen, d.h. ich möchte eig. alle Einträge von diesem Spieler auslesen und dann ausgeben

0
xGlumi 12.07.2017, 09:41
@StaPlerLP

Dann pack einfach unter die Zeile wo du den Grund definierst direkt weitere Zahlen wo du noch andere Variablen deklarierst:

string information1 = st.getString("info1");
string information2 = st.getString("info2");

MFG xGlumi

1
StaPlerLP 12.07.2017, 09:43
@xGlumi

Das ist ja nicht das problem dahinter, ( habe mehrere Methoden gemacht das man nur einzelne Daten abfragen kann ) das Problem ist, dass ich meist nur einen Eintrag ausgegeben kriege. D.h wenn z.b. der Spieler Max 2x in der Tabelle eingetragen ist, kriege ich nur einen Datensatz / Eintrag ( hoffe passt dazu xD ) statt 2

0
xGlumi 12.07.2017, 09:46
@StaPlerLP

Ok, dann ändere bitte deinen query von

SELECT *

zu

SELECT grund

Da du sonst in jeder Methode IMMER ALLE Felder abfragst, obwohl du nur ein bestimmtes in deinen Methoden brauchst.


Zurück zu deinem eigentlichen Problem


while (st.next()) {
//Jeder durchlauf dieser Schleife beinhaltet einen neuen gefundenen User
//Den du per st.getString(""): auslesen kannst
}



MFG xGlumi

2
StaPlerLP 12.07.2017, 09:58
@xGlumi
 //Jeder durchlauf dieser Schleife beinhaltet einen neuen gefundenen User 
//Den du per st.getString(""): auslesen kannst

Wenn ich dich jetzt richtig verstehe, ist es nicht ganz das was ich will. Durch die Select "Methode" wähle ich ja bereits den Spieler aus,eig. muss ich ja nur den Grund ausgegeben haben ( Oder verstehe ich dich gerade falsch?)

0
StaPlerLP 12.07.2017, 10:58
@StaPlerLP

So, deine Antwort hat super funktioniert! Auf jeden fall schonmal danke für das. Nun habe ich aber erneut ein Problem, wenn ich z.b. in der Tabelle einmal: Test1 und Test2 eingetragen habe, bekomme ich zweimal Test1 oder zweimal Test2 ohne das der andere Eintrag angezeigt wird. Code: https://hastebin.com/iqizebunum.vbs

0
xGlumi 12.07.2017, 11:22
@StaPlerLP

Versuch  mal deine IF-Abfrage in der Zeile 6 zu ändern:

if (!st.next()) {

zu

if (!st.hasNext()) {

MFG xGlumi

1
xGlumi 12.07.2017, 11:38
@StaPlerLP

Ah entschuldige ^^
War gerade bei ner anderen Klasse

Ändere mal deine Kopfgesteuerte Schleife in eine Fußgesteuerte Schleife um.

while (st.next()) {

}

zu

do {

} while (st.next());

MFG xGlumi

1
StaPlerLP 12.07.2017, 11:43
@xGlumi

Mhm, nun kommt wenn nur ein Eintrag eingetragen ist dieser Zwei mal, und wenn Zwei eingetragen sind, werden 3 Ausgegeben 2x ein gleicher und 1x der andere

0

würde ich mal eine while schleife nehmen , wenn du mehrere einträge brauchst . das ganze in ein array packen und rückgabe .

Antwort bewerten Vielen Dank für Deine Bewertung
StaPlerLP 12.07.2017, 09:38

Danke dir, werd's mal programmieren, hatte es nie so mit MySQL

0
StaPlerLP 12.07.2017, 09:49
@StaPlerLP

Ok, ich stell mich gerade dumm an weil ich gerade erst aufgestanden bin :/ Kannst du mir kurz auf die Sprünge helfen und einen kleinen Schnipsel schreiben damit ich verstehe was du meinst?

0
RakonDark 12.07.2017, 09:57
@StaPlerLP


z.b. bei MFC
CStringArray mystuff ;
mystuff = getall(..);
CStringArray function getall(...) {...

CStringArray ref;
while (res->next()) {
ref.Add(res->getString("label"));
}

return ref;
}


so ähnlich muss du dir das vorstellen. kannst natürlich auch eine eigene klasse machen dafür . ich hab jetzt mal den syntax nicht beachtet .

0

Danke euch beiden! =) Hat super funktioniert.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?