Variablen werden wieder auf 0 gesetzt?

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
  • Huhu :)
    Ich habe ein Problem, und zwar das ich Werte aus einer MySQL Datenbank lade und die Werte verschiedenen Variablen zuweise,
    allerdrings sind diese sofort wieder auf den Wert 0...


    In der MySQL Log werden auch die richtigen Werte angezeigt, jedoch sind die Variablen sofort wieder auf den Wert 0....


    mysql_format(Handle, query, 128, "SELECT * FROM `accounts` WHERE `name` = '%s'", Spieler[playerid][name]);
    mysql_tquery(Handle, query, "LoadAccount", "i", "playerid");



    public LoadAccount(playerid) {
    Spieler[playerid][admin] = cache_get_field_content_int(0, "admin"); //Auszug
    return 1;
    }


    Nirgendswo werden die Variablen im Script resettet und ich bin nun schon tagelang am rätseln...



    MfG

  • Sicher das du dir keine Funktion erstellt hast zum zurücksetzen der Variablen? Schau mal nach resetPlayer(playerid); etc.


    //E:
    Wenn du schon mysql_format benutzt dann würde ich dir %e ans Herz legen, das Espaced den String dann sofort. (MySQL Injection don't incomming)


    mysql_format(Handle, query, 128, "SELECT * FROM `accounts` WHERE `name` = '%s'", Spieler[playerid][name]);


    zu


    mysql_format(Handle, query, 128, "SELECT * FROM `accounts` WHERE `name` = '%e'", Spieler[playerid][name]);
    Zeig mir mal deine Log und sende einen Datenbank Ausschnitt.


    mfg :thumbup:


  • Ja Klar habe ich nichts um die Variablen zum Resetten ;)
    Und normalerweise benutze ich immer %e hab ich mich wohl vertan oder so, danke :)


    MySQL log Ausschnitt: [14:32:48] [DEBUG] cache_get_field_content_int - row: 0, field_name: "admin", connection: 1
    [14:32:48] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "admin", data: "3"



    Wie gesagt weiß nicht wo der Fehler liegen könnte

  • Zeig uns mal die komplette Funktion, in der der Spieler geladen wird (den Callback)


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • public LoadAccount(playerid) {
    Spieler[playerid][admin] = cache_get_field_content_int(0, "admin");
    Spieler[playerid][level] = cache_get_field_content_int(0, "level");
    Spieler[playerid][kills] = cache_get_field_content_int(0, "kills");
    Spieler[playerid][deaths] = cache_get_field_content_int(0, "deaths");
    Spieler[playerid][perso] = cache_get_field_content_int(0, "perso");
    GivePlayerMoney(playerid, cache_get_field_content_int(0, "money"));
    SetPlayerScore(playerid, Spieler[playerid][level]);
    return 1;
    }


  • Dir ist bewusst das dies nicht den Fehler behebt sondern lediglich den String escaped ;D

  • Flashboot: Nimm mal in deiner tquery Funktion die " von deinem playerid weg.


    Das dürfte dein "reset" beheben.
    Die werden nämlich nicht dort gespeichert, wo du sie vermutest.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen