[MYSQL]Dynamic Businesssystem

  • [MYSQL]Dynamic Businesssystem

    Guten Abend liebes Breadfish Forum,

    da ich in letzter Zeit mich von dini verabschieden möchte und nun MySQL lernen möchte, wollte ich jemanden Fragen, der mir ganz klein helfen kann. Unzwar hab ich ein Businesssystem was noch auf dini basiert, aber brauche es auf MySQL umgeschrieben. Ich schreibe hier mal kleine Codeteile raus, evtl. kann mir dann jemand helfen. Danke im vorraus!

    Code:

    [pwn]stock ErstelleLaden(Float:x,Float:y,Float:z,besitzer[64],preis,level,int,world,opentime,closetime)
    {
    new LadenDatei[50];
    for(new i = 1; i <MAX_LADEN; i++){
    format(LadenDatei,50,"/Laeden/%d.txt",i);
    if(!fexist(LadenDatei)){
    dini_Create(LadenDatei);
    dini_FloatSet(LadenDatei,"PosX",x);
    dini_IntSet(LadenDatei,"Preis",preis);
    dini_Set(LadenDatei,"Besitzer",besitzer);
    return LadeLaden(i);
    }
    }
    }

    stock LadeLaden(lid)
    {
    new LadenDatei[64];
    format(LadenDatei,64,"/Laeden/%d.txt",lid);
    if(!fexist(LadenDatei))return 0;
    LadenInfo[lid][PosX] = dini_Float(LadenDatei,"PosX");
    LadenInfo[lid][Level] = dini_Int(LadenDatei,"Level");
    LadenInfo[lid][Preis] = dini_Int(LadenDatei,"Preis");
    format(LadenInfo[lid][Besitzer],64,"%s",dini_Get(LadenDatei,"Besitzer"));
    if(LadenInfo[lid][Besetzt] == 0){
    LadenInfo[lid][Pickup] = CreatePickup(1318,23,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],0);

    new string[196];
    format(string,196,"Besitzer: {57FF02}Keiner\n{FFFFFF}Preis: {57FF02}%d$\n{FFFFFF}Level: {57FF02}%d\n{FFFFFF}Öffnungszeiten: {57FF02}%i {FFFFFF}bis {57FF02}%i\nKaufen: {57FF02}/ladenkaufen",LadenInfo[lid][Preis],LadenInfo[lid][Level],LadenInfo[lid][OpenTime],LadenInfo[lid][CloseTime]);
    LadenInfo[lid][Label] = Create3DTextLabel(string,WEISS,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],20,0,0);
    }
    }[/pwn]

    Das sind kleine Codeabschnitte, wäre lieb, wenn sie jemand kurz umschreiben könnte, damit ich sehe wie soetwas gemacht wird.
  • eigendlich sind wir für sowas nicht da aber ich mache hier ma ne Kleine Aunahme :D

    code mache ich gleich fertig muss nur noch kurz an meine webseite schreiben

    //EDIT
    [pwn]stock ErstelleLaden(Float:x,Float:y,Float:z,besitzer[64],preis,level,int,world,opentime,closetime)
    {
    new Query[350];
    for(new i = 1; i <MAX_LADEN; i++)
    {
    if(IsPlayerBizInMysql(i) == 0) //Fragt ab ob der eintrag mit der ID i(Schleife) in der Datenbank vergeben ist wenn nicht kommt da der eintrag hin
    {
    format(Query,350,"INSERT INTO `Buisness`(`PosX`, `PosY`, `PosZ`, `Besitzer`, `Level`, `Preis`, `OpenTime`, `CloseTime`) VALUES ('%f','%f','%f','%s','%d','%d','%d','%d')",x,y,z,besitzer,level,preis,opentime,closetime);
    mysql_query(Query);
    return LadeLaden(i);
    }
    }
    }

    stock LadeLaden(lid)
    {
    new LadenDatei[64];
    format(LadenDatei,64,"%d",lid);
    if(IsPlayerBizInMysql(lid) == 1)return 0;

    LadenInfo[lid][PosX] = mysql_GetFloat("Buisness", "PosX", "ID", LadenDatei);
    LadenInfo[lid][PosY] = mysql_GetFloat("Buisness", "PosY", "ID", LadenDatei);
    LadenInfo[lid][PosZ] = mysql_GetFloat("Buisness", "PosZ", "ID", LadenDatei);

    LadenInfo[lid][Level] = mysql_GetInt("Buisness", "Level", "ID", LadenDatei);
    LadenInfo[lid][Preis] = mysql_GetInt("Buisness", "Preis", "ID", LadenDatei);
    format(LadenInfo[lid][Besitzer],64,"%s",mysql_GetString("Buisness", "Besitzer", "ID", LadenDatei));
    if(LadenInfo[lid][Besetzt] == 0){
    LadenInfo[lid][Pickup] = CreatePickup(1318,23,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],0);

    new string[196];
    format(string,196,"Besitzer: {57FF02}Keiner\n{FFFFFF}Preis: {57FF02}%d$\n{FFFFFF}Level: {57FF02}%d\n{FFFFFF}Öffnungszeiten: {57FF02}%i {FFFFFF}bis {57FF02}%i\nKaufen: {57FF02}/ladenkaufen",LadenInfo[lid][Preis],LadenInfo[lid][Level],LadenInfo[lid][OpenTime],LadenInfo[lid][CloseTime]);
    LadenInfo[lid][Label] = Create3DTextLabel(string,WEISS,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],20,0,0);
    return 1;
    }
    return 1;
    }


    stock IsPlayerBizInMysql(ReportID)
    {
    new Query[128],count;
    format(Query, sizeof(Query), "SELECT * FROM `Report` WHERE `playerid` = '%d'", ReportID);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }[/pwn]


    SQL DATABSE

    SQL-Abfrage

    1. CREATE TABLE IF NOT EXISTS `Buisness` (
    2. `ID` int(11) NOT NULL AUTO_INCREMENT,
    3. `PosX` float NOT NULL,
    4. `PosY` float NOT NULL,
    5. `PosZ` float NOT NULL,
    6. `Besitzer` varchar(150) NOT NULL,
    7. `Level` int(11) NOT NULL,
    8. `Preis` int(11) NOT NULL,
    9. `OpenTime` int(11) NOT NULL,
    10. `CloseTime` int(11) NOT NULL,
    11. PRIMARY KEY (`ID`)
    12. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Diavolo ()

  • also am anfang mache ID denn hinten bei AC anklicken

    - Eine ID ist ja ein Intieger also INT (bei Länge mache immer mehr als du akkutell brauchst) zb. 20
    - denn zb. Username ist ein string also varchar(bei Länge mache immer mehr als du akkutell brauchst) zb. 150
    - ein timestamp also eine zeitzahl machst du genau so wie ID nur ohne AC an zukreuzen
    -wenn du ein längeren text schreiben willst und auch speichern verwende dafür TEXT

    mehr brauchst du eingendlich nicht verwenden

    achso ich hoffe du kommst mit der samp_mysql.inc klar

    wenn du noch fragen hast meld dich einfach
  • Du musst das [pwn]
    stock IsPlayerBizInMysql(ReportID)
    {
    new Query[128],count;
    format(Query, sizeof(Query), "SELECT * FROM `Report` WHERE `playerid` = '%d'", ReportID);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }[/pwn]

    zu das ändern ;)

    [pwn]
    stock IsPlayerBizInMysql(lid)
    {
    new Query[128],count;
    format(Query, sizeof(Query), "SELECT * FROM `Buisness` WHERE `ID` = '%d'", lid);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }[/pwn]
  • Hm komisch.

    Hab es jetzte so:

    [pwn]stock IsLadenInMysql(lid)
    {
    new Query[128],count;
    format(Query, sizeof(Query), "SELECT * FROM `laden` WHERE `ID` = '%d'",lid);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }

    stock ErstelleLaden(Float:x,Float:y,Float:z,besitzer[64],preis,level,int,world,opentime,closetime)
    {
    new Query[350];
    for(new i = 1; i <MAX_LADEN; i++){
    if(IsLadenInMysql(i) == 0){
    format(Query,350,"INSERT INTO `laden`(`PosX`, `PosY`, `PosZ`, `Besitzer`, `Besetzt`, `Level`, `Interior`, `World`, `Preis`, `Oeffnungszeiten`, `Schliesszeiten`) VALUES ('%f','%f','%f','%s','0','%d','%d','%d','%d','%d','%d')",x,y,z,besitzer,0,level,int,world,preis,opentime,closetime);
    mysql_query(Query);
    return LadeLaden(i);
    }
    }
    return 1;
    }

    stock LadeLaden(lid)
    {
    new LadenDatei[64];
    format(LadenDatei,64,"%d",lid);
    if(IsLadenInMysql(lid) == 1)return 0;{
    LadenInfo[lid][PosX] = mysql_GetFloat("Buisness", "PosX", "ID", LadenDatei);
    LadenInfo[lid][PosY] = mysql_GetFloat("Buisness", "PosY", "ID", LadenDatei);
    LadenInfo[lid][PosZ] = mysql_GetFloat("Buisness", "PosZ", "ID", LadenDatei);
    LadenInfo[lid][Interior] = mysql_GetInt("Buisness", "Interior", "ID", LadenDatei);
    LadenInfo[lid][OpenTime] = mysql_GetInt("Buisness", "Oeffnungszeiten", "ID", LadenDatei);
    LadenInfo[lid][CloseTime] = mysql_GetInt("Buisness", "Schliesszeiten", "ID", LadenDatei);
    LadenInfo[lid][Level] = mysql_GetInt("Buisness", "Level", "ID", LadenDatei);
    LadenInfo[lid][Preis] = mysql_GetInt("Buisness", "Preis", "ID", LadenDatei);
    LadenInfo[lid][Besetzt] = mysql_GetInt("Buisness", "Besetzt", "ID", LadenDatei);
    format(LadenInfo[lid][Besitzer],64,"%s",mysql_GetString("Buisness", "Besitzer", "ID", LadenDatei));
    if(LadenInfo[lid][Besetzt] == 0){
    LadenInfo[lid][Pickup] = CreatePickup(1318,23,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],0);
    new string[196];
    format(string,196,"Besitzer: {57FF02}Keiner\n{FFFFFF}Preis: {57FF02}%d$\n{FFFFFF}Level: {57FF02}%d\n{FFFFFF}Öffnungszeiten: {57FF02}%i {FFFFFF}bis {57FF02}%i\nKaufen: {57FF02}/ladenkaufen",LadenInfo[lid][Preis],LadenInfo[lid][Level],LadenInfo[lid][OpenTime],LadenInfo[lid][CloseTime]);
    LadenInfo[lid][Label] = Create3DTextLabel(string,WEISS,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],20,0,0);
    return 1;
    }
    if(LadenInfo[lid][Besetzt] == 1){
    LadenInfo[lid][Pickup] = CreatePickup(1318,23,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],0);
    new string[196];
    format(string,196,"Besitzer: {57FF02}%s\nLevel: {57FF02}%d\n{FFFFFF}Öffnungszeiten: {57FF02}%i {FFFFFF}bis {57FF02}%i\nEingang: {57FF02}/enter",LadenInfo[lid][Besitzer],LadenInfo[lid][Level],LadenInfo[lid][OpenTime],LadenInfo[lid][CloseTime]);
    LadenInfo[lid][Label] = Create3DTextLabel(string,WEISS,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],20,0,0);
    }
    }
    return 1;
    }[/pwn]

    Und es geht nicht. :(
    Hoffe Ihr könnt mir weiterhin helfen!
  • und was geht nicht

    bitte mehr info´s denn kann ich dir morgen abend helfen

    //FAIL sag ich nur sry ist aber so :D


    [pwn]
    DAS OBEN IM SCRIPT REIN
    #define Buisness "Laden"

    DU MUSST NUR DRAUF ACHTEN DAS "Laden" SO IMMER AUCH DER TABLE NAME HEIßT
    ALSO z.B. DU NENNST #define Buisness "Laden" IN #define Buisness "Hasjas" so musst du auch die table so nennen also "Hasjas" | NATÜRLICH OHNE [ " ]


    stock IsLadenInMysql(lid)
    {
    new Query[128],count;
    format(Query, sizeof(Query), "SELECT * FROM `%s` WHERE `ID` = '%d'",Buisness,lid);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }

    stock ErstelleLaden(Float:x,Float:y,Float:z,besitzer[64],preis,level,int,world,opentime,closetime)
    {
    new Query[350];
    for(new i = 1; i <MAX_LADEN; i++){
    if(IsLadenInMysql(i) == 0){
    format(Query,350,"INSERT INTO `%s`(`PosX`, `PosY`, `PosZ`, `Besitzer`, `Besetzt`, `Level`, `Interior`, `World`, `Preis`, `Oeffnungszeiten`, `Schliesszeiten`) VALUES ('%f','%f','%f','%s','0','%d','%d','%d','%d','%d','%d')",Buisness,x,y,z,besitzer,0,level,int,world,preis,opentime,closetime);
    mysql_query(Query);
    return LadeLaden(i);
    }
    }
    return 1;
    }

    stock LadeLaden(lid)
    {
    new LadenDatei[64];
    format(LadenDatei,64,"%d",lid);
    if(IsLadenInMysql(lid) == 1)return 0;{
    LadenInfo[lid][PosX] = mysql_GetFloat(Buisness, "PosX", "ID", LadenDatei);
    LadenInfo[lid][PosY] = mysql_GetFloat(Buisness, "PosY", "ID", LadenDatei);
    LadenInfo[lid][PosZ] = mysql_GetFloat(Buisness, "PosZ", "ID", LadenDatei);
    LadenInfo[lid][Interior] = mysql_GetInt(Buisness, "Interior", "ID", LadenDatei);
    LadenInfo[lid][OpenTime] = mysql_GetInt(Buisness, "Oeffnungszeiten", "ID", LadenDatei);
    LadenInfo[lid][CloseTime] = mysql_GetInt(Buisness, "Schliesszeiten", "ID", LadenDatei);
    LadenInfo[lid][Level] = mysql_GetInt(Buisness, "Level", "ID", LadenDatei);
    LadenInfo[lid][Preis] = mysql_GetInt(Buisness, "Preis", "ID", LadenDatei);
    LadenInfo[lid][Besetzt] = mysql_GetInt(Buisness, "Besetzt", "ID", LadenDatei);
    format(LadenInfo[lid][Besitzer],64,"%s",mysql_GetString(Buisness, "Besitzer", "ID", LadenDatei));
    if(LadenInfo[lid][Besetzt] == 0){
    LadenInfo[lid][Pickup] = CreatePickup(1318,23,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],0);
    new string[196];
    format(string,196,"Besitzer: {57FF02}Keiner\n{FFFFFF}Preis: {57FF02}%d$\n{FFFFFF}Level: {57FF02}%d\n{FFFFFF}Öffnungszeiten: {57FF02}%i {FFFFFF}bis {57FF02}%i\nKaufen: {57FF02}/ladenkaufen",LadenInfo[lid][Preis],LadenInfo[lid][Level],LadenInfo[lid][OpenTime],LadenInfo[lid][CloseTime]);
    LadenInfo[lid][Label] = Create3DTextLabel(string,WEISS,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],20,0,0);
    return 1;
    }
    if(LadenInfo[lid][Besetzt] == 1){
    LadenInfo[lid][Pickup] = CreatePickup(1318,23,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],0);
    new string[196];
    format(string,196,"Besitzer: {57FF02}%s\nLevel: {57FF02}%d\n{FFFFFF}Öffnungszeiten: {57FF02}%i {FFFFFF}bis {57FF02}%i\nEingang: {57FF02}/enter",LadenInfo[lid][Besitzer],LadenInfo[lid][Level],LadenInfo[lid][OpenTime],LadenInfo[lid][CloseTime]);
    LadenInfo[lid][Label] = Create3DTextLabel(string,WEISS,LadenInfo[lid][PosX],LadenInfo[lid][PosY],LadenInfo[lid][PosZ],20,0,0);
    }
    }
    return 1;
    }[/pwn]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Diavolo ()