Dynamisches TankstellenSystem MySQL R31

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,
    ich habe grade ein Dynamisches Tankstellesystem geschrieben.
    Nur irgendwie klappt es nicht so ganz.
    Ich kann es erstellen und es wird auch in die Datenbank geschrieben.
    Nur wenn ich es dann laden möchte geht dies nicht.
    Warum nicht?


    #define MAX_TANKSTELLEN 2
    enum Tankstellen_Info
    {
    tVerkauft,
    Besitzer[35],
    tName[50],
    Float:tX,
    Float:tY,
    Float:tZ,
    tProdukte,
    tProduktPreis,
    tTankpreis,
    tKaufPreis,
    tTankKasse,
    }
    new TankInfo[MAX_TANKSTELLEN][Tankstellen_Info];
    ocmd:ct(playerid,params[])
    {
    new Name[50],Preis,Float:X,Float:Y,Float:Z;
    if(sscanf(params,"s[50]i",Name,Preis))return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /ct [Name] [KaufPreis]");
    if(strlen(Name) > 50)return SendClientMessage(playerid,WRONGCMD,"BENUTZE: /ct[Name maximal 50Zeichen] [KaufPreis]");
    GetPlayerPos(playerid,X,Y,Z);
    CreateTankstelle(Name,X,Y,Z,Preis);
    return 1;
    }
    stock CreateTankstelle(Name[],Float:ttX,Float:ttY,Float:ttZ,ttKaufPreis)
    {
    new query[1000];
    mysql_format(mycon,query, sizeof(query), "INSERT INTO `"SERVERTAG"_Tankstellen` (`Name`, `X`, `Y`, `Z`, `Kaufpreis`) VALUES('%s',%.1f,%.1f,%.1f,%d)", Name,ttX,ttY,ttZ,ttKaufPreis);
    mysql_tquery(mycon, query, "", "");
    return 1;
    }
    stock LoadTanken()
    {
    new string[124];
    for(new i; i<MAX_TANKSTELLEN;i++)
    {
    TankInfo[i][tVerkauft] = cache_get_field_content_int(0,"Verkauft");
    cache_get_field_content(0,"Besitzer",TankInfo[i][Besitzer]);
    cache_get_field_content(0,"Name",TankInfo[i][tName]);
    TankInfo[i][tX] = cache_get_field_content_float(0,"X");
    TankInfo[i][tY] = cache_get_field_content_float(0,"Y");
    TankInfo[i][tZ] = cache_get_field_content_float(0,"Z");
    TankInfo[i][tProdukte] = cache_get_field_content_int(0,"Produkte");
    TankInfo[i][tProduktPreis] = cache_get_field_content_int(0,"ProduktPreis");
    TankInfo[i][tTankpreis] = cache_get_field_content_int(0,"TankPreis");
    TankInfo[i][tKaufPreis] = cache_get_field_content_int(0,"Kaufpreis");
    TankInfo[i][tTankKasse] = cache_get_field_content_int(0,"TankKasse");
    format(string,sizeof(string),"%s",TankInfo[i][tName]);
    Create3DTextLabel(string,ORANGE,TankInfo[i][tX],TankInfo[i][tY],TankInfo[i][tZ],7.5,0,1);
    }
    return 1;
    }
    stock SaveTanken()
    {
    new query[1000];
    for(new i; i<MAX_TANKSTELLEN;i++)
    {
    mysql_format(mycon,query, sizeof(query), "UPDATE `"SERVERTAG"_Tankstellen` SET `Verkauft` = %d, `Besitzer` = '%s', `X` = %.1f, `Y` = %.1f, `Z` = %.1f, `Produkte` = %d, `ProduktPreis` = %d, `TankPreis` = %d, `Kaufpreis` = %d, `TankKasse` = %d WHERE `Name` = '%e'",
    TankInfo[i][tVerkauft],
    TankInfo[i][Besitzer],
    TankInfo[i][tX],
    TankInfo[i][tY],
    TankInfo[i][tZ],
    TankInfo[i][tProdukte],
    TankInfo[i][tProduktPreis],
    TankInfo[i][tTankpreis],
    TankInfo[i][tKaufPreis],
    TankInfo[i][tTankKasse],
    TankInfo[i][tName]);
    mysql_tquery(mycon,query,"","");
    }
    return 1;
    }
    OnGameModeint
    {
    mysql_function_query(mycon,"SELECT * FROM "SERVERTAG"_Tankstellen",true,"LoadTanken","");
    }
    Danke im Vorraus
    @IPrototypeI: Da du dich sogut damit auskennst. Ich hoffe dich stört das nicht.

  • weil du nur die erste zeile anspricht..


    das
    TankInfo[i][tX] = cache_get_field_content_float(0,"X");
    TankInfo[i][tY] = cache_get_field_content_float(0,"Y");
    ....


    müsste so sein


    TankInfo[i][tX] = cache_get_field_content_float(i,"X");
    TankInfo[i][tY] = cache_get_field_content_float(i,"Y");
    ....


    //edit
    und das noch verbessern


    mysql_function_query(mycon,"SELECT * FROM "SERVERTAG"_Tankstellen",true,"LoadTanken","");


    zu


    mysql_function_query(mycon,"SELECT * FROM `"SERVERTAG"_Tankstellen`,true,"LoadTanken","");


    ***wenn dein server abschmiert mach das daraus (ganz hinten ist ein leerzeichen)


    mysql_function_query(mycon,"SELECT * FROM `"SERVERTAG"_Tankstellen`,true,"LoadTanken"," ");

    mfg
    Ali ;)

  • Hey,
    danke nur wenn ich das so mach wie du sagtest
    bekomme ich errors
    C:\Users\Nils\Desktop\Selfmade\gamemodes\MySelfmade.pwn(322) : error 017: undefined symbol "mysql_function_query"
    C:\Users\Nils\Desktop\Selfmade\gamemodes\MySelfmade.pwn(322) : error 076: syntax error in the expression, or invalid function call
    C:\Users\Nils\Desktop\Selfmade\gamemodes\MySelfmade.pwn(322) : error 037: invalid string (possibly non-terminated string)
    C:\Users\Nils\Desktop\Selfmade\gamemodes\MySelfmade.pwn(322) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    mysql_function_query(mycon,"SELECT * FROM `"SERVERTAG"_Tankstellen`,true,"LoadTanken",""); //Das was ich da hatte war glaube ich richtig mit dem " nach der Tabelle

  • Das geht.
    So wird es aufgerufen.
    Nur irgendwie entsteht nichts an der Stelle wo es eigentlich sollte
    Es wird einfach kein Label erstellt


    Ich glaube mein fehler liegt hier drinnen
    mysql_function_query(mycon,"SELECT * FROM `"SERVERTAG"_Tankstellen`",true,"LoadTanken","");