MySQL Query geht nicht komplettes System durch

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
  • Guten Tag,


    ich habe einen Fehler bei meinem Speicherungssystem, der MySQL Query geht nur die letzten Zeilen der Speicherung durch, im Code ist alles mal genau beschrieben.
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[800];
    format(query, sizeof(query), "UPDATE `accounts` SET `Level` = '%d',`Adminlevel` = '%d',`Online` = '%d',`Datum` = '%s',`Geschlecht` = '%i',`Alter` = '%i',`Perso` = '%i',`Flugschein` = '%i',`Bootsschein` = '%i',`Fahrpruefung` = '%i',`Fuehrerschein` = '%i',`Verwarnungen` = '%i',`Gebannt` = '%i',`Waffenschein` = '%i',",
    SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pOnline],SpielerInfo[playerid][pDatum],SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pPerso],SpielerInfo[playerid][pFlugschein],SpielerInfo[playerid][pBootsschein],SpielerInfo[playerid][pFahrpruefung],SpielerInfo[playerid][pFuehrerschein],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pWaffenschein]);
    format(query, sizeof(query), "UPDATE `accounts` SET `Gemutet` = '%i',`MuteTime` = '%i',`Fraktion` = '%i',`Fraktionsrang` = '%i',`Leader` = '%i' WHERE `Name` = '%s'",
    SpielerInfo[playerid][pMuted],SpielerInfo[playerid][pMuteTime],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pFraktionsrang],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pName]);
    mysql_query(query);
    printf(query);
    printf("Account wurde gespeichert.");
    }
    }
    return 1;
    }


    Der obere Query wird nicht ausgeführt, nur der untere. - Kennt jemand das Problem?

    Code
    [12:01:43] UPDATE `accounts` SET `Gemutet` = '0',`MuteTime` = '0',`Fraktion` = '0',`Fraktionsrang` = '0',`Leader` = '0' WHERE `Name` = 'Alvaro'
    [12:01:43] Account wurde gespeichert.
  • Hab das mal in 2 Strings gepackt, es funktioniert aber trotzdem nicht.
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[800],query1[800];
    format(query, sizeof(query), "UPDATE `accounts` SET `Level` = '%d',`Adminlevel` = '%d',`Online` = '%d',`Datum` = '%s',`Geschlecht` = '%i',`Alter` = '%i',`Perso` = '%i',`Flugschein` = '%i',`Bootsschein` = '%i',`Fahrpruefung` = '%i',`Fuehrerschein` = '%i',`Verwarnungen` = '%i',`Gebannt` = '%i',`Waffenschein` = '%i' WHERE `Name` = '%s",
    SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pOnline],SpielerInfo[playerid][pDatum],SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pPerso],SpielerInfo[playerid][pFlugschein],SpielerInfo[playerid][pBootsschein],SpielerInfo[playerid][pFahrpruefung],SpielerInfo[playerid][pFuehrerschein],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pWaffenschein],SpielerInfo[playerid][pName]);
    format(query1, sizeof(query1), "UPDATE `accounts` SET `Gemutet` = '%i',`MuteTime` = '%i',`Fraktion` = '%i',`Fraktionsrang` = '%i',`Leader` = '%i' WHERE `Name` = '%s'",
    SpielerInfo[playerid][pMuted],SpielerInfo[playerid][pMuteTime],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pFraktionsrang],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pName]);
    mysql_query(query);
    mysql_query(query1);
    printf(query);
    printf("Account wurde gespeichert.");
    }
    }
    return 1;
    }


    Code
    [12:22:41] UPDATE `accounts` SET `Level` = '0',`Adminlevel` = '0',`Online` = '0',`Datum` = '',`Geschlecht` = '0',`Alter` = '0',`Perso` = '0',`Flugschein` = '0',`Bootsschein` = '0',`Fahrpruefung` = '0',`Fuehrerschein` = '0',`Verwarnungen` = '0',`Gebannt` = '0',`Waffenschein` = '0' WHERE `Name` = 'Testa
    [12:22:41] Account wurde gespeichert.


    Aber normal muss Geschlecht und Alter sich auch ändern, tut es aber nicht. Damals funktionierte es, liegt den hier noch ein Fehler vor? :whistling:

  • Funktioniert trotzdem nicht. :whistling:
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[800],query1[800];
    format(query, sizeof(query), "UPDATE `accounts` SET `Level` = '%d',`Adminlevel` = '%d',`Online` = '%d',`Datum` = '%s',`Geschlecht` = '%i',`Alter` = '%i',`Perso` = '%i',`Flugschein` = '%i',`Bootsschein` = '%i',`Fahrpruefung` = '%i',`Fuehrerschein` = '%i',`Verwarnungen` = '%i',`Gebannt` = '%i',`Waffenschein` = '%i' ' WHERE `Name` = '%s",
    SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pOnline],SpielerInfo[playerid][pDatum],SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pPerso],SpielerInfo[playerid][pFlugschein],SpielerInfo[playerid][pBootsschein],SpielerInfo[playerid][pFahrpruefung],SpielerInfo[playerid][pFuehrerschein],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pWaffenschein],SpielerInfo[playerid][pName]);
    format(query1, sizeof(query1), "UPDATE `accounts` SET `Gemutet` = '%i',`MuteTime` = '%i',`Fraktion` = '%i',`Fraktionsrang` = '%i',`Leader` = '%i'' WHERE `Name` = '%s",
    SpielerInfo[playerid][pMuted],SpielerInfo[playerid][pMuteTime],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pFraktionsrang],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pName]);
    mysql_query(query);
    mysql_query(query1);
    printf(query);
    printf("Account wurde gespeichert.");
    }
    }
    return 1;
    }


    Es wird zwar angezeigt das die Speicherung erfolgt, aber in der Tabelle wird nichts gespeichert.

    Code
    [12:36:35] UPDATE `accounts` SET `Level` = '0',`Adminlevel` = '0',`Online` = '1',`Datum` = '',`Geschlecht` = '0',`Alter` = '0',`Perso` = '0',`Flugschein` = '0',`Bootsschein` = '0',`Fahrpruefung` = '0',`Fuehrerschein` = '0',`Verwarnungen` = '0',`Gebannt` = '0',`Waffenschein` = '0' ' WHERE `Name` = 'Haaa
    [12:36:35] Account wurde gespeichert.
  • list du dir eigendlich durch was ich schreibe?
    Schalte den richtigen SQL debug ein und schau da rein was er dir für Fehler ausgibt denn mit print kommst du da nicht weiß und du hast immernopch den Synatx error

    All in all it's just another brick in the wall

  • ...
    Du hast immernoch den Syntax fehler X(
    Schau dir mal mein 2. Post hier im Thema an und mach das
    Ich werde dir keinen fertigen Code geben denn die lösung habe ich gepostet und der Debug sagt genau das was ich schrieb

    All in all it's just another brick in the wall


  • stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[800][2];
    format(query[0], 800), "UPDATE `accounts` SET `Level` = '%d',`Adminlevel` = '%d',`Online` = '%d',`Datum` = '%s',`Geschlecht` = '%i',`Alter` = '%i',`Perso` = '%i',`Flugschein` = '%i',`Bootsschein` = '%i',`Fahrpruefung` = '%i',`Fuehrerschein` = '%i',`Verwarnungen` = '%i',`Gebannt` = '%i',`Waffenschein` = '%i',",
    SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pOnline],SpielerInfo[playerid][pDatum],SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pPerso],SpielerInfo[playerid][pFlugschein],SpielerInfo[playerid][pBootsschein],SpielerInfo[playerid][pFahrpruefung],SpielerInfo[playerid][pFuehrerschein],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pWaffenschein]);
    format(query[1], 800, "UPDATE `accounts` SET `Gemutet` = '%i',`MuteTime` = '%i',`Fraktion` = '%i',`Fraktionsrang` = '%i',`Leader` = '%i' WHERE `Name` = '%s'",
    SpielerInfo[playerid][pMuted],SpielerInfo[playerid][pMuteTime],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pFraktionsrang],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pName]);
    mysql_query(query[0]);
    mysql_query(query[1]);
    print(query[0]);
    print(query[1]);
    printf("Der Account von %s wurde gespeichert!.",getPlayerName(playerid));
    }
    }
    return 1;
    }


    stock getPlayerName(playerid){new name[24]; GetPlayerName(playerid, name, 24); return name;}


    Benutzt das mal sollte klappen

    3 Mal editiert, zuletzt von Kasakow ()

  • Wozu sollte er die Funktion nutzen um den Namen zu holen wenn er den namen im Enum hat?
    Das ist wieder nen Punkt wo ich nen Facepalm habe denn er hat es immerhin vernünftig gemacht und das sollte er auch beibehalten


    Außerdem wo erklärst du ihn da was?
    Wozu sind 2 deklarierungen für strings nötig?


    //Edit
    Ich seh gerade das dein Code so oder so nicht gehen wird zumindest der erste Query wird nicht ausgeführt
    SChon C&P unterstützen und dann noch falsch machen :D

    All in all it's just another brick in the wall

  • Naja es ist nicht 1 string da du ne 2 am ende stehen hast machst also 2
    Da nützt es nicht ob ich query1 und query2 mache da es so oder so gleich ist von den reccourcen


    Desweiteren hast du bei deinen query mehr falsch gemacht als er.
    Erklären sollte man immer denn nur so versteht man es und er ist nichtmal nen Monat hier und hat nicht übernatürliche kräfte wie du

    All in all it's just another brick in the wall

  • Habe mal ein wenig den Query vergrößert aber die Speicherung funktioniert wieder nicht.

    Code
    [14:25:04] CMySQLHandler::Query(UPDATE `accounts` SET `Level` = '0',`Adminlevel` = '0',`Online` = '1',`Datum` = '',`Geschlecht` = '1',`Alter` = '17',`Perso` = '0',`Flugschein` = '0',`Bootsschein` = '0',`Fahrpruefung` = '0',`Fuehrerschein` = '0',`Verwarnungen` = '0',`Gebannt` = '0',`Waffenschein` = '0' WHERE Name='Excuse') - An error has occured. (Error ID: 1054, Unknown column 'Verwarnungen' in 'field list')
    [14:25:04] >> mysql_query( Connection handle: 1 )
    [14:25:04] CMySQLHandler::Query(UPDATE `accounts` SET `Gemutet` = '0',`MuteTime` = '0',`Fraktion` = '0',`Fraktionsrang` = '0',`Leader` = '0',`Pin` = '0',`Bankgeld` = '0',`Geld` = '0' WHERE Name='Excuse') - Successfully executed.
    [14:25:04] >> mysql_query( Connection handle: 1 )
    [14:25:04] CMySQLHandler::Query(UPDATE `accounts` SET `Online`='0',`Datum` = '11.03.2014' WHERE `Name`='Excuse') - Successfully executed.


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    new query[800],query1[800];
    format(query, sizeof(query), "UPDATE `accounts` SET `Level` = '%d',`Adminlevel` = '%d',`Online` = '%d',`Datum` = '%s',`Geschlecht` = '%i',`Alter` = '%i',`Perso` = '%i',`Flugschein` = '%i',`Bootsschein` = '%i',`Fahrpruefung` = '%i',`Fuehrerschein` = '%i',`Verwarnungen` = '%i',`Gebannt` = '%i',`Waffenschein` = '%i' WHERE Name='%s'",
    SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pAdminlevel],SpielerInfo[playerid][pOnline],SpielerInfo[playerid][pDatum],SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pPerso],SpielerInfo[playerid][pFlugschein],SpielerInfo[playerid][pBootsschein],SpielerInfo[playerid][pFahrpruefung],SpielerInfo[playerid][pFuehrerschein],SpielerInfo[playerid][pWarns],SpielerInfo[playerid][pGebannt],SpielerInfo[playerid][pWaffenschein],SpielerInfo[playerid][pName]);
    format(query1, sizeof(query1), "UPDATE `accounts` SET `Gemutet` = '%i',`MuteTime` = '%i',`Fraktion` = '%i',`Fraktionsrang` = '%i',`Leader` = '%i',`Pin` = '%i',`Bankgeld` = '%i',`Geld` = '%i' WHERE Name='%s'",
    SpielerInfo[playerid][pMuted],SpielerInfo[playerid][pMuteTime],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pFraktionsrang],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pPin],SpielerInfo[playerid][pBankgeld],SpielerInfo[playerid][pGeld],SpielerInfo[playerid][pName]);
    mysql_query(query);
    mysql_query(query1);
    printf(query);
    printf("Account wurde gespeichert.");
    }
    }
    return 1;
    }