Error MySQL no se suma dato.
#1

Bueno mi error es el siguiente, yo compro un auto y en la tabla de vehнculos estб, pero compro otro y el anterior ya no estб si no que se sobrescriben los valores y nunca aparecen mбs de 2 autos en la tabla, reinicio el server y se va todo, їalguien me ayuda?.

pawn Код:
if(strcmp("/comprarveh", cmd, true) == 0) //Comprar vehнculos
{
    if(!GetPlayerConcesionario(playerid)){SendClientMessage(playerid, Rojo, "* No estбs en un concesionario."); return 1;}
    if(GetPlayerConcesionario(playerid) == 7 && PlayerInfo[playerid][pLicNavegacion] == 0){SendClientMessage(playerid, Rojo, "* Necesitas licencia de navegaciуn para comprar vehнculos aquн."); return 1;}
    if(GetPlayerConcesionario(playerid) == 6 && PlayerInfo[playerid][pLicAviacion] == 0){SendClientMessage(playerid, Rojo, "* Necesitas licencia de aviaciуn para comprar vehнculos aquн."); return 1;}
    if((GetPlayerConcesionario(playerid) >= 1 && GetPlayerConcesionario(playerid) <= 5) && PlayerInfo[playerid][pLicConduccion] == 0){SendClientMessage(playerid, Rojo, "* Necesitas licencia de conducciуn para comprar vehнculos aquн."); return 1;}
    cmd = strtok(cmdtext,idx);
    if(!strlen(cmd))
    {
        SendClientMessage(playerid, Naranja, "* /Comprarveh [VehнculoID] [Color1] [Color2]");
        SendClientMessage(playerid, Naranja, "Puedes ver la lista de colores en el foro.");
        return 1;
    }
    if(EnCatalogoVeh[playerid] != NOEXISTE){SendClientMessage(playerid, Rojo, "* Sal del catбlogo primero."); return 1;}
    //GetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
    new tmpcar;
    tmpcar = strval(cmd);
    if(datacar[tmpcar][dcNivel] > PlayerInfo[playerid][pNivel])
    {
        SendClientMessage(playerid, Rojo, "* Nivel insuficiente.");
        return 1;
    }

    new EspacioLibre;
    for(new x = 0; x < 5; x++)
    {
        if(PlayerInfo[playerid][pLlaveCoche][x] == 0){EspacioLibre = 1; break;}
    }
    if(EspacioLibre == 0){SendClientMessage(playerid, Rojo, "* Ya tienes todos los slots de llaves propias ocupados."); return 1;}

    if(datacar[tmpcar][dcConcesionario] != GetPlayerConcesionario(playerid))
    {
        SendClientMessage(playerid, Rojo, "* No disponemos de ese modelo, deberбs buscar en otro concesionario.");
        return 1;
    }

    new Conce2 = GetPlayerConcesionarioEx(playerid);
    for(new i=0; i <= TotalVeh; i++)
    {
        if(IsVehicleInRangeOfPoint(10.0, i, Concesionarios[Conce2][ctX], Concesionarios[Conce2][ctY], Concesionarios[Conce2][ctZ]))
        {
            SendClientMessage(playerid, Rojo, "* Hay un vehнculo en el punto de entrega.");
            return 1;
        }
    }

    if(GetPlayerMoney(playerid) < datacar[tmpcar][dcPrecio] && PlayerInfo[playerid][pDineroBanco] < datacar[tmpcar][dcPrecio])
    {
        SendClientMessage(playerid, Rojo, "* No tienes suficiente dinero ni en mano ni en el banco.");
        return 1;
    }

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid, Naranja, "* /Comprarveh [VehнculoID] [Color1] [Color2]");
        SendClientMessage(playerid, Naranja, "Puedes ver la lista de colores en el foro.");
        return 1;
    }
    new color1;
    color1 = strval(tmp);

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid, Naranja, "* /Comprarveh [VehнculoID] [Color1] [Color2]");
        SendClientMessage(playerid, Naranja, "Puedes ver la lista de colores en el foro.");
        return 1;
    }
    new color2;
    color2 = strval(tmp);

    for(new x; x < 5; x++)
    {
        if(PlayerInfo[playerid][pLlaveCoche][x] == 0)
        {
            PlayerInfo[playerid][pLlaveCoche][x] = CodigoLlave;
            break;
        }
    }

    SendClientMessage(playerid, Verde, "* Has comprado un nuevo vehнculo.");
    SendClientMessage(playerid, Amarillo, "* El vendedor te ha entregado las llaves (/cuenta).");

    new Conce = datacar[tmpcar][dcConcesionario]-1;
    if(GetPlayerMoney(playerid) >= datacar[tmpcar][dcPrecio]){GivePlayerMoneyAC(playerid, -datacar[tmpcar][dcPrecio]);}
    else if(PlayerInfo[playerid][pDineroBanco] >= datacar[tmpcar][dcPrecio]){PlayerInfo[playerid][pDineroBanco] -= datacar[tmpcar][dcPrecio];}
    else{return 1;}
    new Coche = CreateVehicle(datacar[tmpcar][dcIDModel], Concesionarios[Conce][ctX], Concesionarios[Conce][ctY], Concesionarios[Conce][ctZ], 30.0, color1, color2, 3000000);
    CarInfo[Coche][cID] = Coche;
    CarInfo[Coche][cLlave] = CodigoLlave;
    CarInfo[Coche][cModelo] = datacar[tmpcar][dcIDModel];
    CarInfo[Coche][cPosX] = Concesionarios[Conce][ctX];
    CarInfo[Coche][cPosY] = Concesionarios[Conce][ctY];
    CarInfo[Coche][cPosZ] = Concesionarios[Conce][ctZ];
    CarInfo[Coche][cZAngle] = 30.0;
    CarInfo[Coche][cColor1] = color1;
    CarInfo[Coche][cColor2] = color2;
    CarInfo[Coche][cComprado] = 1;
    format(CarInfo[Coche][cDueno], MAX_PLAYER_NAME, "%s", PlayerInfo[playerid][pNombre]);
    format(CarInfo[Coche][cNombreModelo], MAX_PLAYER_NAME, "%s", datacar[tmpcar][dcNombre]);
    CarInfo[Coche][cValor] = datacar[tmpcar][dcPrecio];
    CarInfo[Coche][cGas] = 50;
    CarInfo[Coche][cMaxMaletero] = 7;

    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(Coche, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(Coche, 0, 0, alarm, doors, bonnet, boot, objective);

    SetVehicleMatricula(Coche);

    format(string,sizeof(string),"INSERT INTO vehiculos (Llave, Modelo) VALUES ('%d','%d')",CarInfo[Coche][cLlave],CarInfo[Coche][cModelo]);
    mysql_query(1, string);

    new ccount;
    new sql[80], row[512];
    format(sql, sizeof(sql), "SELECT SQLID FROM vehiculos ORDER BY SQLID DESC");
    mysql_query(1, sql);
    mysql_store_result();
    mysql_fetch_row(row);
    ccount = strval(row);
    mysql_free_result();

    CarInfo[Coche][cSQLID] = ccount;

    SaveCar(Coche);

    CodigoLlave ++;
    TotalVeh ++;
    return 1;
}
pawn Код:
forward SaveCar(idx); //Guardar coches -IMPORTANTE NO BORRAR NI UN SOLO VEHНCULO DE LA DB-
public SaveCar(idx)
{
    if(CarInfo[idx][cLlave] != 0 && CarInfo[idx][cModelo] != 0)
    {
        GetVehiclePos(idx, CarInfo[idx][cPosX], CarInfo[idx][cPosY], CarInfo[idx][cPosZ]);
        GetVehicleZAngle(idx, CarInfo[idx][cZAngle]);
        GetVehicleDamageStatus(idx, CarInfo[idx][cPanels], CarInfo[idx][cDoors], CarInfo[idx][cLights], CarInfo[idx][cTires]);
        GetVehicleHealth(idx, CarInfo[idx][cDamage]);
        CarInfo[idx][cVirtualWorld] = GetVehicleVirtualWorld(idx);
        new sql[1024];
        format(sql, 1024, "UPDATE vehiculos SET ID=%d,Llave=%d,Modelo=%d,PosX=%f,PosY=%f,PosZ=%f,ZAngle=%f,Color1=%d,Color2=%d,Comprado=%d,Dueno='%s',NombreModelo='%s',Valor=%d,Cerrado=%d,Gas=%d,EnDeposito=%d,MaxMaletero=%d WHERE SQLID=%d",
        CarInfo[idx][cID], //ID en SAMP
        CarInfo[idx][cLlave], //Llave del vehнculo
        CarInfo[idx][cModelo], //Modelo del vehнculo
        CarInfo[idx][cPosX], //Posiciуn X
        CarInfo[idx][cPosY], //Posiciуn Y
        CarInfo[idx][cPosZ], //Posiciуn Z
        CarInfo[idx][cZAngle], //Бngulo
        CarInfo[idx][cColor1], //Color 1
        CarInfo[idx][cColor2], //Color 2
        CarInfo[idx][cComprado], //Si tiene propietario
        CarInfo[idx][cDueno], //Nombre del propietario
        CarInfo[idx][cNombreModelo], //Nombre del modelo
        CarInfo[idx][cValor], //Coste del vehнculo
        CarInfo[idx][cCerrado], //Si estб cerrado
        CarInfo[idx][cGas], //Combustible
        CarInfo[idx][cEnDeposito], //Si estб en el depуsito
        CarInfo[idx][cMaxMaletero], //Nъmero de slots que el maletero podrб tener
        CarInfo[idx][cSQLID]); //ID en DB
        mysql_query(1, sql);

        for(new x=0; x<CarInfo[idx][cMaxMaletero]; x++)
        {
            format(sql, 1024, "UPDATE vehiculos SET Maletero%d=%d,MaleteroCant%d=%d WHERE SQLID=%d",
            x+1, CarInfo[idx][cMaletero][x], x+1, CarInfo[idx][cMaleteroCant][x],
            CarInfo[idx][cSQLID]);
            mysql_query(1, sql);
        }

        format(sql, 1024, "UPDATE vehiculos SET Panels=%d,Doors=%d,Lights=%d,Tires=%d,Damage=%f,VirtualWorld=%d,Interior=%d WHERE SQLID=%d",
        CarInfo[idx][cPanels], //Daсo superficies
        CarInfo[idx][cDoors], //Daсo puertas
        CarInfo[idx][cLights], //Daсo luces
        CarInfo[idx][cTires], //Ruedas pinchadas
        CarInfo[idx][cDamage], //Daсo del vehнculo
        CarInfo[idx][cVirtualWorld],
        CarInfo[idx][cInterior],
        CarInfo[idx][cSQLID]);
        mysql_query(1, sql);
    }
    return 1;
}
Gracias!
Reply
#2

Tienes la variable "SQLID" en AUTO_INCREMENT (A.I)?
Reply
#3

Quote:
Originally Posted by Nicolas_Castillo
Посмотреть сообщение
Tienes la variable "SQLID" en AUTO_INCREMENT (A.I)?
No! Dime donde pongo que cosa, estarнa muy agradecido, soy muy novato en MySQL, por lo visto tъ no!
Reply
#4

Quote:
Originally Posted by SetPlayerWantedLevel
Посмотреть сообщение
No! Dime donde pongo que cosa, estarнa muy agradecido, soy muy novato en MySQL, por lo visto tъ no!
Si tiene auto increment... eso lo podes mirar en las tabla de vehнculos de phpmyadmin, o abriendo el .sql con algъn programa como el bloc de notas o con pawno..
Reply
#5

Tengo esto...



Y en el .sql tengo(el cуdigo este no lo hice yo):

pawn Код:
--
-- Estructura de tabla para la tabla `vehiculos`
--

CREATE TABLE IF NOT EXISTS `vehiculos` (
  `SQLID` int(6) NOT NULL [B]AUTO_INCREMENT[/B],
  `ID` int(4) NOT NULL,
  `Llave` int(6) NOT NULL,
  `Modelo` int(4) NOT NULL,
  `PosX` float NOT NULL,
  `PosY` float NOT NULL,
  `PosZ` float NOT NULL,
  `ZAngle` float NOT NULL,
  `Color1` int(5) NOT NULL,
  `Color2` int(5) NOT NULL,
  `Comprado` int(2) NOT NULL,
  `Dueno` varchar(24) NOT NULL,
  `NombreModelo` varchar(20) NOT NULL,
  `Valor` int(10) NOT NULL,
  `Cerrado` int(2) NOT NULL,
  `Gas` int(4) NOT NULL,
  `EnDeposito` int(3) NOT NULL,
  `MaxMaletero` int(3) NOT NULL,
  `Maletero1` int(5) NOT NULL,
  `MaleteroCant1` int(10) NOT NULL,
  `Maletero2` int(5) NOT NULL,
  `MaleteroCant2` int(10) NOT NULL,
  `Maletero3` int(5) NOT NULL,
  `MaleteroCant3` int(10) NOT NULL,
  `Maletero4` int(5) NOT NULL,
  `MaleteroCant4` int(10) NOT NULL,
  `Maletero5` int(5) NOT NULL,
  `MaleteroCant5` int(10) NOT NULL,
  `Maletero6` int(5) NOT NULL,
  `MaleteroCant6` int(10) NOT NULL,
  `Maletero7` int(5) NOT NULL,
  `MaleteroCant7` int(10) NOT NULL,
  `Maletero8` int(5) NOT NULL,
  `MaleteroCant8` int(10) NOT NULL,
  `Maletero9` int(5) NOT NULL,
  `MaleteroCant9` int(10) NOT NULL,
  `Maletero10` int(5) NOT NULL,
  `MaleteroCant10` int(10) NOT NULL,
  `Panels` int(8) NOT NULL,
  `Doors` int(8) NOT NULL,
  `Lights` int(8) NOT NULL,
  `Tires` int(8) NOT NULL,
  `Damage` float NOT NULL,
  `VirtualWorld` int(4) NOT NULL,
  `Interior` int(4) NOT NULL,
  PRIMARY KEY (`SQLID`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

--
-- Volcado de datos para la tabla `vehiculos`
--

INSERT INTO `vehiculos` (`SQLID`, `ID`, `Llave`, `Modelo`, `PosX`, `PosY`, `PosZ`, `ZAngle`, `Color1`, `Color2`, `Comprado`, `Dueno`, `NombreModelo`, `Valor`, `Cerrado`, `Gas`, `EnDeposito`, `MaxMaletero`, `Maletero1`, `MaleteroCant1`, `Maletero2`, `MaleteroCant2`, `Maletero3`, `MaleteroCant3`, `Maletero4`, `MaleteroCant4`, `Maletero5`, `MaleteroCant5`, `Maletero6`, `MaleteroCant6`, `Maletero7`, `MaleteroCant7`, `Maletero8`, `MaleteroCant8`, `Maletero9`, `MaleteroCant9`, `Maletero10`, `MaleteroCant10`, `Panels`, `Doors`, `Lights`, `Tires`, `Damage`, `VirtualWorld`, `Interior`) VALUES
(1, 89, 1000, 467, 10000, 10000, 10000, 10000, 0, 0, 1, '', 'Oceanic', 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, 0);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
1 AUTO_INCREMENT=1 ;
Reply
#6

Trata de que te quede asн
Reply
#7

Quote:
Originally Posted by Nicolas_Castillo
Посмотреть сообщение
Trata de que te quede asн
Lo tengo asн, estб bien?

Reply
#8

Seguro moviste algo, ya he testeado ese cmd y se agrega el vehнculo correctamente... intenta haciendo truncate y luego intenta de nuevo comprar el auto..
Reply
#9

Quote:
Originally Posted by Juand
Посмотреть сообщение
Seguro moviste algo, ya he testeado ese cmd y se agrega el vehнculo correctamente... intenta haciendo truncate y luego intenta de nuevo comprar el auto..
їtruncate? no toquй nada, no sй que pasa
Reply
#10

Quote:
Originally Posted by SetPlayerWantedLevel
Посмотреть сообщение
їtruncate? no toquй nada, no sй que pasa
Dale truncate a la tabla para vaciarla, e intenta nuevamente, ve a operaciones y allн dice
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)