MySQL speichert nicht

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
  • Hey,


    mein System speichert nicht, ich weiß ich habe irgendwas fehlerhaftes, könnte mir das einer sagen was es ist?
    Also Allgemein speichert man ja die Spieler mit p_id ab, jeder spieler hat in der DB seine eigene ID.. also macht man bei der query "WHERE id = '%d'...


    Wie müsste ich das aber bei meinem System machen?:



    enum Geldverwaltung
    {
    Jailcashcop,
    Jailcashrobber,
    ArrestGeldCop,
    ArrestGeldRobber,
    RobtotGeld
    }
    new Geld[Geldverwaltung];


    ongamemodeinit:
    LoadGeldverwaltung();


    ongamemodeexit:
    SaveGeldverwaltung();



    und die stocks:


    stock LoadGeldverwaltung()
    {
    Geld[Jailcashcop] = cache_get_field_content_int(0, "jailcashcop", handle);
    Geld[Jailcashrobber] = cache_get_field_content_int(0, "jailcashrobber", handle);
    Geld[ArrestGeldCop] = cache_get_field_content_int(0, "arrestgeldcop", handle);
    Geld[ArrestGeldRobber] = cache_get_field_content_int(0, "arrestgeldrobber", handle);
    Geld[RobtotGeld] = cache_get_field_content_int(0, "robtotgeld", handle);
    return 1;
    }


    stock SaveGeldverwaltung()
    {
    new query[700];
    mysql_format(handle, query,sizeof(query),"UPDATE geldverwaltung SET jailcashcop = '%d', jailcashrobber = '%d', arrestgeldcop = '%d', arrestgeldrobber = '%d', robtotgeld = '%d'",
    Geld[Jailcashcop],
    Geld[Jailcashrobber],
    Geld[ArrestGeldCop],
    Geld[ArrestGeldRobber],
    Geld[RobtotGeld]);


    mysql_pquery(handle, query);
    return 1;
    }



    jmd eine Idee? :)



    MfG

    Mit freundlichen Grüßen,


    Keslo

  • Da der Name von jedem Spieler auch eindeutig ist, kannst du auch WHERE `Name`='%s' machen

    Oh tut mir leid, habe mich nicht ordentlich ausgedrückt..


    Das ist eine globale Server Speicherung, nicht für den Spieler..


    @Kaliber


    Edit: Achja, ja kla jetzt fällts mir auch ein.. muss ja nicht "p_id" verwenden, sondern kann auch den namen auslesen.. habe dich falsch verstanden :D

    Mit freundlichen Grüßen,


    Keslo

  • Ah fail..ja sry, hatte mir das nicht alles durchgelesen ^^


    So wie du das in deinem Skript hast..gibt es ja nur eine Geldverwaltung...


    Ansonsten müsstest du ein 2 dimensionales Array erstellen und das über einen index regeln.


    So kannste einfach eine feste id wie 0 der Spalte zuweisen und dann immer WHERE `id`=0 oder wenn es über den index geht, speicherst du den einfach mit ab und dann: WHERE `id`=%d",i

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ok das verstehe ich nur so halb :pinch:


    Könntest du mir das System evtl so bearbeiten, dass er es abspeichern würde? Und wie muss meine tabelle aussehen dann?


    @Kaliber

    Mit freundlichen Grüßen,


    Keslo

  • Füg in deiner Datenbank einfach ein Feld in die Tabelle ein, als Integer mit dem Namen id.


    Und dann einfach 0 setzen (kannste auch default machen).


    Dann kannste dein Query einfach so schreiben:


    und beim Laden brauchste des nicht mal...könntest einfach SELECT * FROM geldverwaltung machen, da du ja nur eine Reihe hast, spielst das ja keine Rolle ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ja..bevor du etwas Updaten kannst, musst du natürlich erstmal was reinladen...


    Also mach einen ersten Insert Eintrag z.B. über PHPMyAdmin...


    der so ungefähr aussieht:


    INSERT INTO geldverwaltung (id,jailcashcop,jailcashrobber,arrestgeldcop,arrestgeldrobber,robtotgeld) VALUES (0,0,0,0,0,0)


    :)


    PS: Da du hier nur einen Wert hast..sollte ID nicht auto_increment sein..das macht keinen Sinn ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • @Kaliber


    Super, er speichert nun! Danke erstmal dafür :)


    Und wie genau mach ich, dass er es lädt? Kannst ja oben von meinem Stocks entnehmen, so funktionierts schon mal nicht.
    Wenn geht, bitte mit code...

    Mit freundlichen Grüßen,


    Keslo

  • Wieso? o:


    Hast es denn mal geprintet?


    Das sieht eigentlich richtig aus

    Also printen tut ers, aber lädt halt nichts :x




    stock LoadGeldverwaltung()
    {
    Geld[Jailcashcop] = cache_get_field_content_int(0, "jailcashcop", handle);
    Geld[Jailcashrobber] = cache_get_field_content_int(0, "jailcashrobber", handle);
    Geld[ArrestGeldCop] = cache_get_field_content_int(0, "arrestgeldcop", handle);
    Geld[ArrestGeldRobber] = cache_get_field_content_int(0, "arrestgeldrobber", handle);
    Geld[RobtotGeld] = cache_get_field_content_int(0, "robtotgeld", handle);
    print("done");
    return 1;
    }


    @Kaliber

    Mit freundlichen Grüßen,


    Keslo

  • ...nein du sollst z.B. folgendes printen:


    printf("Jailcashcop: %d",Geld[Jailcashcop]);


    und dann schauen ob der Wert..dem der Datenbank übereinstimmt :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • und dann schauen ob der Wert..dem der Datenbank übereinstimmt

    Er printet, dass es "0" sei, obwohl ein Wert in der DB drin steht...



    @Kaliber



    edit:


    ich hab jetzt ausversehen 2x das hier eingegeben unter phpmyadmin



    INSERT INTO geldverwaltung (id,jailcashcop,jailcashrobber,arrestgeldcop,arrestgeldrobber,robtotgeld) VALUES (0,0,0,0,0,0)


    Wie bekomm ich das eine Weg? vielleicht liegt das ja da dran :D

    Mit freundlichen Grüßen,


    Keslo

  • Wie rufst du denn LoadGeldverwaltung auf? ^^


    Das sollte ungefähr so aussehen:


    mysql_pquery(handle, "SELECT * FROM geldverwaltung", true, "LoadGeldverwaltung", "");


    und aus dem stock mach mal ein:



    forward LoadGeldverwaltung();
    public LoadGeldverwaltung()
    {

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • @Kaliber


    huch mein Fehler, meinte bei ongamemodeinit "LoadGeldverwaltung();"


    Es ist 4 Uhr morgens, bitte um entschuldigung :D

    bei ongamemodeinit


    unter der zeile:
    mysql_pquery(handle, "SELECT * FROM geldverwaltung", true, "LoadGeldverwaltung", "");


    der fehler: error 035: argument type mismatch (argument 3)


    Mit freundlichen Grüßen,


    Keslo

  • Nah mein Fehler..anscheinend brauchste bei der Funktion kein true..lösch das raus, also nur:


    mysql_pquery(handle, "SELECT * FROM geldverwaltung", "LoadGeldverwaltung");

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

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