|MYSQL-Problem|Tabellendarstellung

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Wunderschönen Guten Morgen euch allen,


    Ich habe das Problem das ich dass Gamemode nicht anbekomme.
    Wegen fehlender Mysql Tabellen,ich habe alle erstellt und es ist trotzdem immer noch unknown.
    Könnte einer mal vorbeischauen ob ich es richtig gemacht habe.Oder mir zeigen was ich da zu machen habe.


    Hier ist die Public OnPlayerLogin


    public OnPlayerLogin(playerid)
    {
    new string[128];
    new query[256], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(query,sizeof(query),"SELECT Level FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);
    mysql_store_result();
    PlayerInfo[playerid][pLevel] = mysql_fetch_int();
    mysql_free_result();
    format(query,sizeof(query),"SELECT AdminLevel FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);
    mysql_store_result();
    PlayerInfo[playerid][pAdmin] = mysql_fetch_int();
    mysql_free_result();
    format(query,sizeof(query),"SELECT DonateRank FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);
    mysql_store_result();
    PlayerInfo[playerid][pDonateRank] = mysql_fetch_int();
    mysql_free_result();
    format(query,sizeof(query),"SELECT Registered FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);
    mysql_store_result();
    PlayerInfo[playerid][pRegistered] = mysql_fetch_int();
    mysql_free_result();
    format(query,sizeof(query),"SELECT Tutorial FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);
    mysql_store_result();
    PlayerInfo[playerid][pTut] = mysql_fetch_int();
    mysql_free_result();
    format(query,sizeof(query),"SELECT Sex FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);
    mysql_store_result();
    PlayerInfo[playerid][pSex] = mysql_fetch_int();
    mysql_free_result();
    format(query,sizeof(query),"SELECT Age FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);
    mysql_store_result();
    PlayerInfo[playerid][pAge] = mysql_fetch_int();
    mysql_free_result();
    format(query,sizeof(query),"SELECT Experience FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);
    mysql_store_result();
    PlayerInfo[playerid][pExp] = mysql_fetch_int();
    mysql_free_result();
    format(query,sizeof(query),"SELECT Money FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);
    mysql_store_result();


    Ich habe es so gemacht:




    Ich bitte um Hilfe!


    Gruß


    Carey_Mahoney

  • Omg wie Kompliziert machst du das :S Hast du überhaupt eine Ahnung von MySQL ?(


    Du brauchst das nur einmal abfragen.


    format(query,sizeof(query),"SELECT * FROM `user` WHERE Name = '%s' LIMIT 1",pName);
    mysql_query(query);


    Damit kannst du nun alle anderen Werte abfragen, weil es gibt eh nur einen einzigen User mit dem Namen oder gar keinen. Dies erspart die alle anderen Querys. Das * bedeutet das du alle Werte dann davon bekommst. Versuchs mal damit.


    Und so speicherst du die Werte ab.


    mysql_fetch_field("Adminlevel", daten);
    PlayerInfo[playerid][pAdmin] = strval(daten);

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • Da ich gerade in der Schule bin und das bis 6. Kann ich dir leider nicht über Teamviewer helfen. Aber ich sag dir noch wie du Informationen aus Feldern ausliest.


    Erstmal erstellst du einen neuen String um dort immer die Werte einzulesen.
    new daten[128];


    Hier die Abfrage.


    format(query,sizeof(query),"SELECT * FROM `user` WHERE Name = '%s'",pName);
    mysql_query(query);
    Also mit der Select-Abfrage liefert er dir mal alle Werte aus der der Zeile wo der Name = pName. Das Limit 1 kannst du weglassen, ich weiß gar nicht ob das überhaupt hier funktioniert. Lass es mal weg, es sollte sowieso von der Registrierung her nicht gehen das es mehrere gleiche Namen gibt.


    Nun speicherst du die Werte.


    mysql_fetch_field("Adminlevel", daten);
    PlayerInfo[playerid][pAdmin] = strval(daten);
    mysql_fetch_field("Level", daten);
    PlayerInfo[playerid][pLevel] = strval(daten);
    Mit dem mysql_fetch_field holst du dir die Daten aus dem Feld und speicherst diese in den daten-String. Weiters machst du dann aus daten einen Int-Wert mit der strval-Methode und speicherst dies in dein enum.


    Falls du noch Fragen hast melde dich.

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg