Cars sving loading is not working. (MYSQL)
#1

Hello dear samp forum members I need your help despretlly.

So my code is not working fully. My second and 3rd car what I bought is not saving and i dont understand why tried a lot of metods but still got the same thing. So here is my code maybe some one could help me out as it's very important to me.

pawn Код:
public SaveSQLCar(idx,savePark)
{
    print("Car Saving");
    new sql[512],owner[32],oldOwner[32],message[64];
    mysql_real_escape_string(CarInfo[idx][cOwner], owner);
    mysql_real_escape_string(CarInfo[idx][cOldOwner], oldOwner);
    mysql_real_escape_string(CarInfo[idx][cDescription], message);

    format(sql, sizeof(sql), "UPDATE srp_players_cars SET model=%d,color1=%d,color2=%d,owner='%s',oldOwner='%s',type=%d,description='%s',price=%d,owned=%d,locked=%d,status=%d,arme1=%d,arme2=%d,arme3=%d,arme4=%d,arme5=%d,amo1=%d,amo2=%d,amo3=%d,amo4=%d,amo5=%d,drugs=%d WHERE id=%d",
    CarInfo[idx][cModel],
    CarInfo[idx][cColorOne],
    CarInfo[idx][cColorTwo],
    owner,
    oldOwner,
    CarInfo[idx][cType],
    message,
    CarInfo[idx][cValue],
    CarInfo[idx][cOwned],
    CarInfo[idx][cLock],
    CarInfo[idx][cStatus],
    CarInfo[idx][cArme1],
    CarInfo[idx][cArme2],
    CarInfo[idx][cArme3],
    CarInfo[idx][cArme4],
    CarInfo[idx][cArme5],
    CarInfo[idx][cAmo1],
    CarInfo[idx][cAmo2],
    CarInfo[idx][cAmo3],
    CarInfo[idx][cAmo4],
    CarInfo[idx][cAmo5],
    CarInfo[idx][cDrugs],
    idx );
    MySQLCheckconnexion();
    mysql_query(sql);
    //SQLLog(sql);

    format(sql, sizeof(sql), "UPDATE srp_players_cars SET hero=%d,matos=%d,job=%d, faction=%d, house=%d, Stelled=%d, tPaintJob=%d, tExhausts=%d, tFrontBumper=%d, tRearBumper=%d, tRoof=%d, tSpoilers=%d, tSideBumper=%d, tWheels=%d, tHydraulics=%d, tNitro=%d, tSideBumper2=%d, tNeon=%d, plaque='%s', rank=%d, vignette=%d WHERE id=%d",
    CarInfo[idx][cHero],
    CarInfo[idx][cMatos],
    CarInfo[idx][cJob],
    CarInfo[idx][cFaction],
    CarInfo[idx][cHouse],
    CarInfo[idx][cStelled],
    CarInfo[idx][tPaintJob],
    CarInfo[idx][tExhausts],
    CarInfo[idx][tFrontBumper],
    CarInfo[idx][tRearBumper],
    CarInfo[idx][tRoof],
    CarInfo[idx][tSpoilers],
    CarInfo[idx][tSideBumper],
    CarInfo[idx][tWheels],
    CarInfo[idx][tHydraulics],
    CarInfo[idx][tNitro],
    CarInfo[idx][tSideBumper2],
    CarInfo[idx][tNeon],
    CarInfo[idx][cPlaque],
    CarInfo[idx][cRank],
    CarInfo[idx][cVignette],
    idx );
    MySQLCheckconnexion();
    mysql_query(sql);
    //SQLLog(sql);

    if(savePark)
    {
        format(sql,sizeof(sql),"UPDATE srp_players_cars SET x=%f,y=%f,z=%f,angle=%f WHERE id=%d",
        CarInfo[idx][cLocationx],
        CarInfo[idx][cLocationy],
        CarInfo[idx][cLocationz],
        CarInfo[idx][cAngle],
        idx);
        MySQLCheckconnexion();
        mysql_query(sql);
    }
    return 1;
}

public car_changeStatus(carid,status)
{
    if(status==1)
    { // Retour а la normale
        CarInfo[carid][cStatus]=1;
        SaveSQLCar(carid,false);
        return 1;
    }


    new proprioCo=-1,tmpName[MAX_PLAYER_NAME],string[128];
    for(new i=MIN_PLAYERID; i<MAX_PLAYERS_CURRENT+1; i++)
    {
        if(IsPlayerConnected(i) && gPlayerLogged[i])
        {
            GetPlayerName(i,tmpName,MAX_PLAYER_NAME);
            if(strcmp(tmpName,CarInfo[carid][cOwner],true)==0)
                {proprioCo=i; break;}
        }
    }
    if(status==2)
    {
        if(proprioCo!=-1)
        { // Proprio actuellement connectй, on lui envoit un message
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) vient d'кtre mis en fourriиre, utilisez /gps pour y aller.",VehiclesName[GetVehicleModel(carid)-400]);
            SendClientMessage(proprioCo,COLOR_VEHICULE,string);
        }
        else
        { // Sinon, on modifie le status, pour avertir le proprio а sa connexion
            CarInfo[carid][cStatus]=2;
            SaveSQLCar(carid,false);
        }
    }
    else if(status==3)
    {
        if(proprioCo!=-1)
        { // Proprio actuellement connectй, on lui envoit un message
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй volй ! Allez la rйcupйrer а la fourriиre. (( /gps ))",VehiclesName[GetVehicleModel(carid)-400]);
            SendClientMessage(proprioCo,COLOR_VEHICULE,string);
        }
        else
        { // Sinon, on modifie le status, pour avertir le proprio а sa connexion (si respawn de la caisse, on l'enlve)
            CarInfo[carid][cStatus]=3;
            SaveSQLCar(carid,false);
        }
    }
    return 1;
}

public car_checkStatus(playerid)
{
    new string[MAX_STRING_MSG];
    if(PlayerInfo[playerid][pPcarkey]!=9999)
    {
        new carId=PlayerInfo[playerid][pPcarkey];
        if(CarInfo[carId][cStatus]==2)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй mis en fourriиre, utilisez /gps pour y aller.",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
        else if(CarInfo[carId][cStatus]==3)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй volй ! Allez la rйcupйrer а la fourriиre des voitures volйes (( /gps ))",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
    }
    if(PlayerInfo[playerid][pCarKey2]!=9999)
    {
        new carId=PlayerInfo[playerid][pCarKey2];
        if(CarInfo[carId][cStatus]==2)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй mis en fourriиre, utilisez /gps pour y aller.",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
        else if(CarInfo[carId][cStatus]==3)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй volй ! Allez la rйcupйrer а la fourriиre des voitures volйes (( /gps ))",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
    }
    if(PlayerInfo[playerid][pCarKey3]!=9999)
    {
        new carId=PlayerInfo[playerid][pCarKey3];
        if(CarInfo[carId][cStatus]==2)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй mis en fourriиre, utilisez /gps pour y aller.",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
        else if(CarInfo[carId][cStatus]==3)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй volй ! Allez la rйcupйrer а la fourriиre des voitures volйes (( /gps ))",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
    }
}

public car_setCarOwned(playerid, vehicleid)
{
    if(car_getNbrCars(playerid) >= 3)
        {return 1;}

    new change=false;
    if(PlayerInfo[playerid][pPcarkey] == 9999)
        {PlayerInfo[playerid][pPcarkey] = vehicleid; change=true;}
    else if(PlayerInfo[playerid][pCarKey2] == 9999)
        {PlayerInfo[playerid][pCarKey2] = vehicleid; change=true;}
    else if(PlayerInfo[playerid][pCarKey3] == 9999)
        {PlayerInfo[playerid][pCarKey3] = vehicleid; change=true;}

    if(change)
    {
        new playername[MAX_PLAYER_NAME];
        GetPlayerName(playerid, playername, sizeof(playername));
        CarInfo[vehicleid][cOwned] = 1;
        CreateVehicleLabel(vehicleid,playerid);
        check_nameTag(playerid);
        memcpy(CarInfo[vehicleid][cOwner], playername, 0, MAX_PLAYER_NAME*4, MAX_PLAYER_NAME*4);
        SaveSQLCar(vehicleid,false);
        format(proxy_msg, sizeof(debug_msg), "Achat de la voiture : cOwned=%d", CarInfo[vehicleid][cOwned]);
        debug_sendMsg(playerid, debug_msg);
        OnPlayerUpdateSQL(playerid);
    }
    return 1;
}
Thank you for your time.

Respectfully LilBob!
Reply
#2

It's not really possible to trace the problem you're facing based on the code and details you have provided. At this point my suggestion would be to debug it. Run various tests to first of all see if the relevant data is saving to your database correctly. If it isn't then you can review your code and add debug statements to see where it is going wrong. If it is saving correctly, you need to add debug statements to check that your mode is properly fetching, retrieving and loading the data.
Reply
#3

Hum, the problem is : when i disconnect/reconnect, car owner are reset (i am not the owner of my car even more).
Reply
#4

UP.. problem still, 4 persons tried to help me, sucessless...

Anyone can try to help me please ?
Reply
#5

up...
Reply
#6

Can someone help me please ?? add me skype: Arpatos68

Problem still since a month ...
Reply
#7

pawn Код:
public SaveSQLCar(idx,savePark)
{
    print("Car Saving");
    new sql[512],owner[32],oldOwner[32],message[64];
    mysql_real_escape_string(CarInfo[idx][cOwner], owner);
    mysql_real_escape_string(CarInfo[idx][cOldOwner], oldOwner);
    mysql_real_escape_string(CarInfo[idx][cDescription], message);

    format(sql, sizeof(sql), "UPDATE `srp_players_cars` SET `model`=%d, `color1`=%d, `color2`=%d, `owner`='%s', `oldOwner`='%s', `type`=%d, `description`='%s', `price`=%d, `owned`=%d, `locked`=%d, `status`=%d, `arme1`=%d, `arme2`=%d, `arme3`=%d, `arme4`=%d, `arme5`=%d, `amo1`=%d, `amo2`=%d, `amo3`=%d, `amo4`=%d, `amo5`=%d, `drugs`=%d WHERE `id`=%d",
    CarInfo[idx][cModel],
    CarInfo[idx][cColorOne],
    CarInfo[idx][cColorTwo],
    owner,
    oldOwner,
    CarInfo[idx][cType],
    message,
    CarInfo[idx][cValue],
    CarInfo[idx][cOwned],
    CarInfo[idx][cLock],
    CarInfo[idx][cStatus],
    CarInfo[idx][cArme1],
    CarInfo[idx][cArme2],
    CarInfo[idx][cArme3],
    CarInfo[idx][cArme4],
    CarInfo[idx][cArme5],
    CarInfo[idx][cAmo1],
    CarInfo[idx][cAmo2],
    CarInfo[idx][cAmo3],
    CarInfo[idx][cAmo4],
    CarInfo[idx][cAmo5],
    CarInfo[idx][cDrugs],
    idx );
    MySQLCheckconnexion();
    mysql_query(sql);
    //SQLLog(sql);

    format(sql, sizeof(sql), "UPDATE `srp_players_cars` SET `hero`=%d, `matos`=%d, `job`=%d, `faction`=%d, `house`=%d, `Stelled`=%d, `tPaintJob`=%d, `tExhausts`=%d, `tFrontBumper`=%d, `tRearBumper`=%d, `tRoof`=%d, `tSpoilers`=%d, `tSideBumper`=%d, `tWheels`=%d, `tHydraulics`=%d, `tNitro`=%d, `tSideBumper2`=%d, `tNeon`=%d, `plaque`='%s', `rank`=%d, `vignette`=%d WHERE `id`=%d",
    CarInfo[idx][cHero],
    CarInfo[idx][cMatos],
    CarInfo[idx][cJob],
    CarInfo[idx][cFaction],
    CarInfo[idx][cHouse],
    CarInfo[idx][cStelled],
    CarInfo[idx][tPaintJob],
    CarInfo[idx][tExhausts],
    CarInfo[idx][tFrontBumper],
    CarInfo[idx][tRearBumper],
    CarInfo[idx][tRoof],
    CarInfo[idx][tSpoilers],
    CarInfo[idx][tSideBumper],
    CarInfo[idx][tWheels],
    CarInfo[idx][tHydraulics],
    CarInfo[idx][tNitro],
    CarInfo[idx][tSideBumper2],
    CarInfo[idx][tNeon],
    CarInfo[idx][cPlaque],
    CarInfo[idx][cRank],
    CarInfo[idx][cVignette],
    idx );
    MySQLCheckconnexion();
    mysql_query(sql);
    //SQLLog(sql);

    if(savePark)
    {
        format(sql,sizeof(sql),"UPDATE `srp_players_cars` SET `x`=%f, `y`=%f, `z`=%f, `angle`=%f WHERE `id`=%d",
        CarInfo[idx][cLocationx],
        CarInfo[idx][cLocationy],
        CarInfo[idx][cLocationz],
        CarInfo[idx][cAngle],
        idx);
        MySQLCheckconnexion();
        mysql_query(sql);
    }
    return 1;
}

public car_changeStatus(carid,status)
{
    if(status==1)
    { // Retour а la normale
        CarInfo[carid][cStatus]=1;
        SaveSQLCar(carid,false);
        return 1;
    }


    new proprioCo=-1,tmpName[MAX_PLAYER_NAME],string[128];
    for(new i=MIN_PLAYERID; i<MAX_PLAYERS_CURRENT+1; i++)
    {
        if(IsPlayerConnected(i) && gPlayerLogged[i])
        {
            GetPlayerName(i,tmpName,MAX_PLAYER_NAME);
            if(strcmp(tmpName,CarInfo[carid][cOwner],true)==0)
                {proprioCo=i; break;}
        }
    }
    if(status==2)
    {
        if(proprioCo!=-1)
        { // Proprio actuellement connectй, on lui envoit un message
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) vient d'кtre mis en fourriиre, utilisez /gps pour y aller.",VehiclesName[GetVehicleModel(carid)-400]);
            SendClientMessage(proprioCo,COLOR_VEHICULE,string);
        }
        else
        { // Sinon, on modifie le status, pour avertir le proprio а sa connexion
            CarInfo[carid][cStatus]=2;
            SaveSQLCar(carid,false);
        }
    }
    else if(status==3)
    {
        if(proprioCo!=-1)
        { // Proprio actuellement connectй, on lui envoit un message
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй volй ! Allez la rйcupйrer а la fourriиre. (( /gps ))",VehiclesName[GetVehicleModel(carid)-400]);
            SendClientMessage(proprioCo,COLOR_VEHICULE,string);
        }
        else
        { // Sinon, on modifie le status, pour avertir le proprio а sa connexion (si respawn de la caisse, on l'enlve)
            CarInfo[carid][cStatus]=3;
            SaveSQLCar(carid,false);
        }
    }
    return 1;
}

public car_checkStatus(playerid)
{
    new string[MAX_STRING_MSG];
    if(PlayerInfo[playerid][pPcarkey]!=9999)
    {
        new carId=PlayerInfo[playerid][pPcarkey];
        if(CarInfo[carId][cStatus]==2)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй mis en fourriиre, utilisez /gps pour y aller.",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
        else if(CarInfo[carId][cStatus]==3)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй volй ! Allez la rйcupйrer а la fourriиre des voitures volйes (( /gps ))",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
    }
    if(PlayerInfo[playerid][pCarKey2]!=9999)
    {
        new carId=PlayerInfo[playerid][pCarKey2];
        if(CarInfo[carId][cStatus]==2)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй mis en fourriиre, utilisez /gps pour y aller.",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
        else if(CarInfo[carId][cStatus]==3)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй volй ! Allez la rйcupйrer а la fourriиre des voitures volйes (( /gps ))",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
    }
    if(PlayerInfo[playerid][pCarKey3]!=9999)
    {
        new carId=PlayerInfo[playerid][pCarKey3];
        if(CarInfo[carId][cStatus]==2)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй mis en fourriиre, utilisez /gps pour y aller.",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
        else if(CarInfo[carId][cStatus]==3)
        {
            format(string,sizeof(string),"[Vehicule] Votre vйhicule (%s) a йtй volй ! Allez la rйcupйrer а la fourriиre des voitures volйes (( /gps ))",VehiclesName[GetVehicleModel(carId)-400]);
            SendClientMessage(playerid,COLOR_VEHICULE,string);
            car_changeStatus(carId,1);
        }
    }
}

public car_setCarOwned(playerid, vehicleid)
{
    if(car_getNbrCars(playerid) >= 3)
        {return 1;}

    new change=false;
    if(PlayerInfo[playerid][pPcarkey] == 9999)
        {PlayerInfo[playerid][pPcarkey] = vehicleid; change=true;}
    else if(PlayerInfo[playerid][pCarKey2] == 9999)
        {PlayerInfo[playerid][pCarKey2] = vehicleid; change=true;}
    else if(PlayerInfo[playerid][pCarKey3] == 9999)
        {PlayerInfo[playerid][pCarKey3] = vehicleid; change=true;}

    if(change)
    {
        new playername[MAX_PLAYER_NAME];
        GetPlayerName(playerid, playername, sizeof(playername));
        CarInfo[vehicleid][cOwned] = 1;
        CreateVehicleLabel(vehicleid,playerid);
        check_nameTag(playerid);
        memcpy(CarInfo[vehicleid][cOwner], playername, 0, MAX_PLAYER_NAME*4, MAX_PLAYER_NAME*4);
        SaveSQLCar(vehicleid,false);
        format(proxy_msg, sizeof(debug_msg), "Achat de la voiture : cOwned=%d", CarInfo[vehicleid][cOwned]);
        debug_sendMsg(playerid, debug_msg);
        OnPlayerUpdateSQL(playerid);
    }
    return 1;
All I did was put `` around all the columns. I'm not sure if that was the problem, but I've had problems with it myself before, and this is what solved it. Always put `` around the columns and tables.
Reply
#8

I put all codes and errors, what do u need else ?
Reply
#9

Nobody ?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)