MySQL Daten von Spieler auslesen und im Chat ausgeben?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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

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
@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
@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
@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
@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

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
@StaPlerLP

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

if (!st.next()) {

zu

if (!st.hasNext()) {

MFG xGlumi

1
@xGlumi
if (!st.hasNext()) {

Existiert nicht

0
@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
@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
@StaPlerLP

Hmm laut deiner letzten Aussage hätte die vorherige Schleife (und der vorherige Code) aber dann 100% funktionieren sollen.

MFG xGlumi

1
@StaPlerLP

Dein code ist ja auch falsch.

1. Wieso clearest du das spezifische Objekt "gr" innerhalb der Methode? (Wenn schon dann übergibst du sie als Parameter und clearest darüber)

2. Du addest ja den return-Wert zu gr (gr.add(getGrund(t))
Du wirst hier aber immer nur einen Grund bekommen, da du ja in Zeile 15 die "grund"-Variable immer wieder überschreibst, sodass am ende einfach der letzte wert stehen bleibt und returned wird.

3. Ich würde die Methode insoweit erweitern, dass du die Liste als parameter übergibst und innerhalb der schleife die übergebene liste befüllst.

Wenn es dann immernoch nicht geht, dann liegt der Fehler nicht innerhalb der Zeilen die du mir hier zeigst.

MFG xGlumi

1
@xGlumi

(Wenn schon dann übergibst du sie als Parameter und clearest darüber)

Versteh ich gerade nicht ganz, wie das funktionieren sollte? ( Ned gerade der beste in Java )

0
@StaPlerLP
public static String getGrund(String p)

zu

public static String getGrund(DATENTYP myList, String p)

Und dann sprichst du in deiner Methode die Liste nicht mit "gr" an, sondern mit "myList"

MFG xGlumi

1
@xGlumi

Danke dir! Habs mal endlich hingekriegt xD

Aber mal so eine andere Frage,

wenn ich z.b. zwei einträge gleich habe ( wie im beispiel )

spieler      grund       (kp was da kommt (int)) teamler

Test         Test                5                              Max

Test         Test                5                              Max

Wie kann ich es dann eig. hinkriegen einfach nur einen der beiden Einträge zu löschen?

0
@xGlumi

oh.. Das es so einfach ist hätte ich nicht gedacht! Auf jeden fall danke! =)

0

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

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

0
@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
@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

MySQL Datenabfrage?

Also ich hab ne Datenbank mit den Tabellen gegeben und soll alle Studenten ohne Telefonnummer ausgeben. Ich hab jetzt die Abfrage für Anzeigen aller Studenten mit Telefonnummer:

SELECT Vorname,Nachname,Nummer FROM Stud JOIN Telefon ON Stud.MNr=Telefon.MNr

Gibt es in MySQL sozusagen ne Gegenereignis Funktion, oder wie genau soll man da rangehn, steh grad irgendwie aufm Schlauch.

MfG Dennis

...zur Frage

Bukkit Plugin - Argumente als String angeben

Ich habe zum Spaß einfach mal ein Plugin geschrieben damit die Leute auf unserem Bukkit Server ein paar neue Befehle entdecken können. (Fragt nicht wie ich auf die namen der Befehle gekommen bin) Es funktioniert auch alles ganz gut nur wenn ich den Befehl mit argument eingeben will passiert einfach nicht (nicht einmal ein Fehler).

public boolean onCommand(CommandSender sender, Command cmd,
        String commandLabel, String[] args) {
    if (sender instanceof Player) {
        Player p = (Player) sender;
        if (cmd.getName().equalsIgnoreCase("huhu")) {
            p.sendMessage("Huhu " + p.getName());
            p.sendMessage("Dafür das du gegrüßt hast bekommst du eine magische Heilung ;)");
            p.setHealth(20);
        }
        if (cmd.getName().equalsIgnoreCase("koalas")) {
            if (args.length == 0) {
                p.sendMessage("Möchtest du die Koalas unterstützen?");
                p.sendMessage("Verwende /koalas unterstuetzen oder /koalas ausrotten");
            }
            if (args.length == 1) {
                if (args[0] == "unterstuetzen") {
                    p.sendMessage("Danke für deine Unterstuetzung. Dafür wirst du geheilt!");
                    p.setHealth(20);
                } else if (args[0] == "ausrotten") {
                    p.sendMessage("So jetzt komm aber die Peta");
                    p.kickPlayer("Bye Bye");
                }
            }

        }
    } else {
        System.out.println("Bitte nur als Spieler ausfuehren");
    }
    return true;

Ich habe in die plugin.yml auch nur das eingetragen

...zur Frage

[Bukkit-Plugin-Programmieren] MySQL gucken ob ein Spieler bereits in einer Tabelle ist?

  1. Wie mache ich das?
  2. Wie bekomme ich mit dem Namen den VARCHAR/String der in der anderen Spalte der Tabelle ist?

LG

Cainer

...zur Frage

Daten aus 2 MySQL Datenbanken auf einer PHP seite wiedergeben?

Hallo, ich wollte mal fragen wie ich Daten aus 2 MySQL Datenbanken auf einer PHP seite wiedergeben kann, also z.B. wenn ich in einer Datenbank Name und Geburtstag habe und in einer anderen Name und Geburtsort wie kann ich es quasi als eine Tabelle ausgeben, also das ich per PHP Name Geburtstag und Geburtsort als eine Abfrage mache

Bitte vorallem auch erklären wie ich 2 Datenbanken in einer PHP Datei Starten und dann halt auch gleichzeitig verwenden kann

Danke schonmal in Vorraus:)

...zur Frage

Hilfe bei MySQL Bedwars Plugin von BukkitPvP?

Ich habe das mit MySQL noch nie gemacht und habe keine guten Tutorials gefunden wie das geht. Ich will das Bedwars Plugin von BukkitPvP  mit MySQL verbinden, damit ich alle Stars sehen kann wie erstelle ich diese "bank" in meiner Datenbank und wie kann ich dem Plugin sagen, dass es dort gespeichert werden soll?

...zur Frage

Passwortabfrage in eclipse mit MySQL?

Eigentlich habe ich mir schon ziemlich viele Tutorials auf YouTube angeguckt, aber irgentwie klappt das bei mir nicht :( Ich habe mir ein Fenster erstellt in eclipse und will mit einer abfrage durch eine MYSQL-Datenbank ein register und ein anmelden machen. Kann mir irgentwer sagen wie das geht, und mir dazu noch grundlegende Befehle schreibt für eine Abfrage, wie das Connecten das schreiben und das auslesen ? MfG JanInfoHD

...zur Frage

Was möchtest Du wissen?