[DUDA]No se actualiza la base de datos mysql :S
#1

Estuve pasando un sistema de negocios en mysql a mi gm y lo logre!pude crear la tabla en la db y la escribe correctamente al crear el negocio.Pero ocurren unos problemas.

Cuando reinicio el server despuйs de crear el negocio me reconoce que esta creado(le hice un printf en la consola y me dice negocios totales bla bla)

Pero no aparece el negocio ni la entrada ni el label en la entrada ni nada .Dejo mis comandos para crear y para editar haber si tengo algo mal (ojo estos comandos lo tome del gm que nombre anteriormente ,los pase a ycmd y adapte a mis variables solamente.)


pawn Код:
YCMD:crearnegocio(playerid, params[], help)
{
if (help) SendClientMessage(playerid, 0xFF0000AA, "Para creacion de negocios"); // Esto no sale si se usa el comando
else
{
        new sql[80], row[256], id;
        if(Informacion[playerid][pAdmin] < 3)
        {
            SendClientMessage(playerid, Rojo, "* No formas parte del Staff!");
            return 1;
        }
        format(sql, 80, "INSERT INTO negocios (Nombre) VALUES ('Negocio')");
        mysql_query(sql);

        format(sql, sizeof(sql), "SELECT COUNT(*) FROM negocios");
        mysql_query(sql);
        mysql_store_result();
        mysql_fetch_row(row);
        id = strval(row);

        NegocioInfo[id][nId] = id;
        NegocioInfo[id][nType] = 1;
        NegocioInfo[id][nLocked] = 0;
        NegocioInfo[id][nCosto] = 30000;
        NegocioInfo[id][nCajaFuerte] = 0;
        NegocioInfo[id][nProd] = 250;
        format(NegocioInfo[id][nOwner], 128, "El Estado");
        format(NegocioInfo[id][nName], 128, "Negocio Numero %d", id);
        new Float:X[MAX_PLAYERS], Float:Y[MAX_PLAYERS], Float:Z[MAX_PLAYERS];
        GetPlayerPos(playerid, X[playerid],Y[playerid],Z[playerid]);
        NegocioInfo[id][nEPos_x] = X[playerid];
        NegocioInfo[id][nEPos_y] = Y[playerid];
        NegocioInfo[id][nEPos_z] = Z[playerid];
        NegocioInfo[id][nSPos_x] = -800.25134277344;
        NegocioInfo[id][nSPos_y] = 512.41198730469;
        NegocioInfo[id][nSPos_z] = 1751.0947265625;
        NegocioInfo[id][nInterior] = 1;

        SaveNegocio(id);

        NegocioInfo[id][nPickup] = CreateDynamic3DTextLabel(NegocioInfo[id][nName], Azul, X[playerid], Y[playerid], Z[playerid], 10);
        mysql_free_result();
        return 1;
    }
    return 1;
    }

//
YCMD:editneg(playerid, params[], help)
{
if (help) SendClientMessage(playerid, 0xFF0000AA, "para editar los negocios");
else
{
        new string[200];
        new idx;
        new tmp[128];
        if(Informacion[playerid][pAdmin] < 3)
        {
            SendClientMessage(playerid, Rojo, "* No formas parte del Staff!");
            return 1;
        }

        tmp = strtok(params, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, BLANCO, "USO: /editneg [Campo]");
            SendClientMessage(playerid, AzulClaro, "Campos Disponibles: Posicion, Nombre, Tipo, Interior, Costo, Nivel, Eliminar");
            return 1;
        }

        if(strcmp(tmp, "Posicion", true) == 0)
        {
            for(new i = 0; i < sizeof(NegocioInfo); i++)
            {
                if(PlayerToPoint(2.0, playerid, NegocioInfo[i][nEPos_x], NegocioInfo[i][nEPos_y], NegocioInfo[i][nEPos_z]))
                {
                    Informacion[playerid][pMoviendoNeg] = i;
                    break;
                }
            }
            SendClientMessage(playerid, Amarillo, "* Estas moviendo el Negocio, escribe 'OK' cuando termines.");
            return 1;
        }

        else if(strcmp(tmp, "Nombre", true) == 0)
        {
            for(new i = 0; i < sizeof(NegocioInfo); i++)
            {
                if(PlayerToPoint(2.0, playerid, NegocioInfo[i][nEPos_x], NegocioInfo[i][nEPos_y], NegocioInfo[i][nEPos_z]))
                {
                    Informacion[playerid][pEditingNeg] = i;
                    break;
                }
            }
            SendClientMessage(playerid, Amarillo, "* Escribe un nuevo nombre para el Negocio.");
            return 1;
        }

        else if(strcmp(tmp, "eliminar", true) == 0)
        {
            for(new i = 1; i < sizeof(NegocioInfo); i++)
            {
                if(PlayerToPoint(2.0, playerid, NegocioInfo[i][nEPos_x], NegocioInfo[i][nEPos_y], NegocioInfo[i][nEPos_z]))
                {
                    format(string, 128, "UPDATE negocios SET eliminado=1 WHERE id=%d LIMIT 1", i);
                    mysql_query(string);
                    EliminarNegocio(i);
                    break;
                }
            }
        }

        else if(strcmp(tmp, "Tipo", true) == 0)
        {
            tmp = strtok(params, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, BLANCO, "USO: /editneg Tipo [ID]");
                SendClientMessage(playerid, AzulClaro, "IDs Disponibles: 1- Restaurantes 2- Bares/NightClubs 3-24/7 4-Comidas Rбpidas");
                SendClientMessage(playerid, AzulClaro, "6-Corrupto 7-Mecanico Faccion 8-Hierbas 9-AmmuNation 10-Tiendas de ropa 11-Muebles");
                return 1;
            }
            new id;
            id = strval(tmp);
            for(new i = 0; i < sizeof(NegocioInfo); i++)
            {
                if(PlayerToPoint(2.0, playerid, NegocioInfo[i][nEPos_x], NegocioInfo[i][nEPos_y], NegocioInfo[i][nEPos_z]))
                {
                    NegocioInfo[i][nType] = id;
                    if(id > 5 && id < 9)
                    {
                        NegocioInfo[i][nLocked] = 1;
                    }
                    else { NegocioInfo[i][nLocked] = 0; }
                    SaveNegocio(i);
                    format(string, 128, "* Listo! Cambiaste el tipo del Negocio a '%d'", id);
                    break;
                }
            }
            SendClientMessage(playerid, Amarillo, string);
            return 1;
        }

        else if(strcmp(tmp, "Costo", true) == 0)
        {
            tmp = strtok(params, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, BLANCO, "USO: /editneg Costo [$$]");
                return 1;
            }
            new id;
            id = strval(tmp);
            for(new i = 0; i < sizeof(NegocioInfo); i++)
            {
                if(PlayerToPoint(2.0, playerid, NegocioInfo[i][nEPos_x], NegocioInfo[i][nEPos_y], NegocioInfo[i][nEPos_z]))
                {
                    NegocioInfo[i][nCosto] = id;
                    SaveNegocio(i);
                    format(string, 128, "* Listo! Cambiaste el costo del Negocio a '%d'e", id);
                    break;
                }
            }
            SendClientMessage(playerid, Amarillo, string);
            return 1;
        }

        else if(strcmp(tmp, "Interior", true) == 0)
        {
            tmp = strtok(params, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, BLANCO, "USO: /editneg Interior [ID]");
                SendClientMessage(playerid, AMARILLO, "[TIPO 1] 1 Restaurante Italiano | 2 Restaurante Normal | 3 Chino | 4 R. Casino | 5 Bar de Carretera");
                SendClientMessage(playerid, AMARILLO, "[TIPO 2] 1 Alhambra | 2 10Botellas | 3 Bar Area51 | 4 PigPen | 5 Pleasure Domes | 6 Club del puente");
                SendClientMessage(playerid, AMARILLO, "[TIPO 3] 1 - 7 24/7s");
                SendClientMessage(playerid, AMARILLO, "[TIPO 4] 1 Burger Shot | 2 Cluckin Bell | 3 Well Staked Pizza | 4 Donuts | 5 Cafeteria Americana");
                SendClientMessage(playerid, AMARILLO, "[TIPO 9] 1 AmmuNation");
                SendClientMessage(playerid, AMARILLO, "[TIPO 10] 1 Binco | 2 Zip | 3 DS | 4 Victim | 5 Suburban | 6 Prolaps");
                SendClientMessage(playerid, AMARILLO, "[TIPO 11] 1 Tienda de muebles");
                return 1;
            }
            new inter;
            inter = strval(tmp);
            for(new i = 0; i < sizeof(NegocioInfo); i++)
            {
                if(PlayerToPoint(2.0, playerid, NegocioInfo[i][nEPos_x], NegocioInfo[i][nEPos_y], NegocioInfo[i][nEPos_z]))
                {
                    if(NegocioInfo[i][nType] == 1)
                    {
                        if(inter == 1)
                        {
                            NegocioInfo[i][nSPos_x] = -800.0458;
                            NegocioInfo[i][nSPos_y] = 512.1575;
                            NegocioInfo[i][nSPos_z] = 1751.3335;
                            NegocioInfo[i][nInterior] = 1;
                        }
                        else if(inter == 2)
                        {
                            NegocioInfo[i][nSPos_x] = 460.4592;
                            NegocioInfo[i][nSPos_y] = -88.7668;
                            NegocioInfo[i][nSPos_z] = 999.5547;
                            NegocioInfo[i][nInterior] = 4;
                        }
                        else if(inter == 3)
                        {
                            NegocioInfo[i][nSPos_x] = 2264.8356933594;
                            NegocioInfo[i][nSPos_y] = 1615.4234619141;
                            NegocioInfo[i][nSPos_z] = 1637.5969238281;
                            NegocioInfo[i][nInterior] = 1;
                        }
                        else if(inter == 4)
                        {
                            NegocioInfo[i][nSPos_x] = 2945.9106445313;
                            NegocioInfo[i][nSPos_y] = -605.34265136719;
                            NegocioInfo[i][nSPos_z] = 3110.0737304688;
                            NegocioInfo[i][nInterior] = 1;
                        }
                        else if(inter == 5)
                        {
                            NegocioInfo[i][nSPos_x] = 1445.2429199219;
                            NegocioInfo[i][nSPos_y] = 245.3904876709;
                            NegocioInfo[i][nSPos_z] = 2293.8967285156;
                            NegocioInfo[i][nInterior] = 1;
                        }
                    }
                    else if(NegocioInfo[i][nType] == 2)
                    {
                        switch(inter)
                        {
                            case 1:
                            {
                                NegocioInfo[i][nSPos_x] = 488.2629;
                                NegocioInfo[i][nSPos_y] = -14.4430;
                                NegocioInfo[i][nSPos_z] = 1094.8901;
                                NegocioInfo[i][nInterior] = 17;
                            }
                            case 2:
                            {
                                NegocioInfo[i][nSPos_x] = 501.9810;
                                NegocioInfo[i][nSPos_y] = -69.1502;
                                NegocioInfo[i][nSPos_z] = 998.757812;
                                NegocioInfo[i][nInterior] = 11;
                            }
                            case 3:
                            {
                                NegocioInfo[i][nSPos_x] = 2538.6535644531;
                                NegocioInfo[i][nSPos_y] = -1407.0051269531;
                                NegocioInfo[i][nSPos_z] = 2634.7524414063;
                                NegocioInfo[i][nInterior] = 1;
                            }
                            case 4:
                            {
                                NegocioInfo[i][nSPos_x] = 2519.1640625;
                                NegocioInfo[i][nSPos_y] = -1410.09765625;
                                NegocioInfo[i][nSPos_z] = 3244.349609375;
                                NegocioInfo[i][nInterior] = 1;
                            }
                            case 5:
                            {
                                NegocioInfo[i][nSPos_x] = -2648.8720703125;
                                NegocioInfo[i][nSPos_y] = 1407.3342285156;
                                NegocioInfo[i][nSPos_z] = 1114.9744873047;
                                NegocioInfo[i][nInterior] = 1;
                            }
                            case 6:
                            {
                                NegocioInfo[i][nSPos_x] = 370.5724;
                                NegocioInfo[i][nSPos_y] = -1691.9987;
                                NegocioInfo[i][nSPos_z] = 18.4710;
                                NegocioInfo[i][nInterior] = -1;
                            }
                        }
                    }
                    else if(NegocioInfo[i][nType] == 3)
                    {
                        switch(inter)
                        {
                            case 1:
                            {
                                NegocioInfo[i][nSPos_x] = 6.0092;
                                NegocioInfo[i][nSPos_y] = -31.6645;
                                NegocioInfo[i][nSPos_z] = 1003.55;
                                NegocioInfo[i][nInterior] = 10;
                            }
                            case 2:
                            {
                                NegocioInfo[i][nSPos_x] = -25.884498;
                                NegocioInfo[i][nSPos_y] = -185.868988;
                                NegocioInfo[i][nSPos_z] = 1003.546875;
                                NegocioInfo[i][nInterior] = 17;
                            }
                            case 3:
                            {
                                NegocioInfo[i][nSPos_x] = -30.946699;
                                NegocioInfo[i][nSPos_y] = -89.609596;
                                NegocioInfo[i][nSPos_z] = 1003.546875;
                                NegocioInfo[i][nInterior] = 18;
                            }
                            case 4:
                            {
                                NegocioInfo[i][nSPos_x] = 663.3172;
                                NegocioInfo[i][nSPos_y] = -573.3005;
                                NegocioInfo[i][nSPos_z] = 16.3359;
                                NegocioInfo[i][nInterior] = 0;
                            }
                            case 5:
                            {
                                NegocioInfo[i][nSPos_x] = -25.132598;
                                NegocioInfo[i][nSPos_y] = -139.066986;
                                NegocioInfo[i][nSPos_z] = 1003.546875;
                                NegocioInfo[i][nInterior] = 16;
                            }
                            case 6:
                            {
                                NegocioInfo[i][nSPos_x] = -27.312299;
                                NegocioInfo[i][nSPos_y] = -29.277599;
                                NegocioInfo[i][nSPos_z] = 1003.557250;
                                NegocioInfo[i][nInterior] = 4;
                            }
                            case 7:
                            {
                                NegocioInfo[i][nSPos_x] = -26.691598;
                                NegocioInfo[i][nSPos_y] = -55.714897;
                                NegocioInfo[i][nSPos_z] = 1003.546875;
                            }
                        }
                    }
                    else if(NegocioInfo[i][nType] == 4)
                    {
                        switch(inter)
                        {
                            case 1:
                            {
                                NegocioInfo[i][nSPos_x] = 362.8855;
                                NegocioInfo[i][nSPos_y] = -75.1039;
                                NegocioInfo[i][nSPos_z] = 1001.5078;
                                NegocioInfo[i][nInterior] = 10;
                            }
                            case 2:
                            {
                                NegocioInfo[i][nSPos_x] = 364.8881;
                                NegocioInfo[i][nSPos_y] = -11.6040;
                                NegocioInfo[i][nSPos_z] = 1001.8516;
                                NegocioInfo[i][nInterior] = 9;
                            }
                            case 3:
                            {
                                NegocioInfo[i][nSPos_x] = 372.4163;
                                NegocioInfo[i][nSPos_y] = -133.3985;
                                NegocioInfo[i][nSPos_z] = 1001.4922;
                                NegocioInfo[i][nInterior] = 5;
                            }
                            case 4:
                            {
                                NegocioInfo[i][nSPos_x] = 377.2815;
                                NegocioInfo[i][nSPos_y] = -192.9495;
                                NegocioInfo[i][nSPos_z] = 1000.6401;
                                NegocioInfo[i][nInterior] = 17;
                            }
                            case 5:
                            {
                                NegocioInfo[i][nSPos_x] = 1454.2191162109;
                                NegocioInfo[i][nSPos_y] = 218.90119934082;
                                NegocioInfo[i][nSPos_z] = 2884.2409667969;
                                NegocioInfo[i][nInterior] = 1;
                            }
                        }
                    }
                    else if(NegocioInfo[i][nType] == 9)
                    {
                         switch(inter)
                        {
                            case 1:
                            {
                                NegocioInfo[i][nSPos_x] = 286.148986;
                                NegocioInfo[i][nSPos_y] = -40.644397;
                                NegocioInfo[i][nSPos_z] = 1001.515625;
                                NegocioInfo[i][nInterior] = 1;
                            }
                        }
                    }
                    else if(NegocioInfo[i][nType] == 10)
                    {
                         switch(inter)
                        {
                            case 1: // Binco
                            {
                                NegocioInfo[i][nSPos_x] = 207.737991;
                                NegocioInfo[i][nSPos_y] = -109.019996;
                                NegocioInfo[i][nSPos_z] = 1005.132812;
                                NegocioInfo[i][nInterior] = 15;
                            }
                            case 2: // Zip
                            {
                                NegocioInfo[i][nSPos_x] = 161.6299;
                                NegocioInfo[i][nSPos_y] = -96.1142;
                                NegocioInfo[i][nSPos_z] = 1001.8047;
                                NegocioInfo[i][nInterior] = 18;
                            }
                            case 3: // Didier sachs
                            {
                                NegocioInfo[i][nSPos_x] =   204.332992;
                                NegocioInfo[i][nSPos_y] = -166.694992;
                                NegocioInfo[i][nSPos_z] = 1000.523437;
                                NegocioInfo[i][nInterior] = 14;
                            }
                            case 4: // Victim
                            {
                                NegocioInfo[i][nSPos_x] = 226.293991;
                                NegocioInfo[i][nSPos_y] = -7.431529;
                                NegocioInfo[i][nSPos_z] = 1002.210937;
                                NegocioInfo[i][nInterior] = 5;
                            }
                            case 5: // Suburban
                            {
                                NegocioInfo[i][nSPos_x] = 203.777999;
                                NegocioInfo[i][nSPos_y] = -48.492397;
                                NegocioInfo[i][nSPos_z] = 1001.804687;
                                NegocioInfo[i][nInterior] = 1;
                            }
                            case 6: // Prolaps
                            {
                                NegocioInfo[i][nSPos_x] = 207.054992;
                                NegocioInfo[i][nSPos_y] = -138.80499;
                                NegocioInfo[i][nSPos_z] = 1003.507812;
                                NegocioInfo[i][nInterior] = 3;
                            }
                        }
                    }
                    else if(NegocioInfo[i][nType] == 11)
                    {
                         switch(inter)
                        {
                            case 1:
                            {
                                NegocioInfo[i][nSPos_x] = 298.8442;
                                NegocioInfo[i][nSPos_y] = -141.6956;
                                NegocioInfo[i][nSPos_z] = 1004.0547;
                                NegocioInfo[i][nInterior] = 7;
                            }
                        }
                    }
                    SaveNegocio(i);
                    break;
                }
            }
            //SaveNegocio(i);
            SendClientMessage(playerid, Verde, "* Listo Cambiaste el Interior del Negocio");
        }
        return 1;
    }
    return 1;
    }
Dejo aquн como queda en la db :S



Desde ya muchas gracias.
Reply
#2

Prueba cambiando al consulta, que sн 'ID' es un valor AUTO_INCREMENT podrнas generar un bug sн se borra algъn negocio anterior al ъltimo:
pawn Код:
mysql_query("SELECT MAX(`id`) FROM `negocios`");
    mysql_store_result();
    new str[7], id;
    mysql_fetch_row_format( str );
    id = strval(str);
Reply
#3

Genial ahora si se guarda , pero cuando reinicio el servidor sigue sin aparecer їcrees que puede estar algo mal en la carga de negocios?

pawn Код:
LoadNegocio()
{
    new sql[80], row[512], negcount, neliminado;
    format(sql, sizeof(sql), "SELECT COUNT(*) FROM negocios");
    mysql_query(sql);
    mysql_store_result();
    mysql_fetch_row(row);
    negcount = strval(row);
   
    for (new idx=1; idx<=negcount; idx++)
    {
        format(sql, sizeof(sql), "SELECT * FROM negocios WHERE id=%d LIMIT 1", idx);
        mysql_query(sql);
        mysql_store_result();
        mysql_fetch_row(row);
        split(row, arrCoords2, '|');
        neliminado = strval(arrCoords2[16]);
        if(neliminado == 0)
        {
            NegocioInfo[idx][nId] = strval(arrCoords2[0]);
            format(NegocioInfo[idx][nName], 128, "%s", arrCoords2[1]);
            NegocioInfo[idx][nType] = strval(arrCoords2[2]);
            NegocioInfo[idx][nEPos_x] = floatstr(arrCoords2[3]);
            NegocioInfo[idx][nEPos_y] = floatstr(arrCoords2[4]);
            NegocioInfo[idx][nEPos_z] = floatstr(arrCoords2[5]);
            NegocioInfo[idx][nSPos_x] = floatstr(arrCoords2[6]);
            NegocioInfo[idx][nSPos_y] = floatstr(arrCoords2[7]);
            NegocioInfo[idx][nSPos_z] = floatstr(arrCoords2[8]);
            NegocioInfo[idx][nProd] = strval(arrCoords2[9]);
            NegocioInfo[idx][nCajaFuerte] = strval(arrCoords2[10]);
            NegocioInfo[idx][nLocked] = strval(arrCoords2[11]);
            format(NegocioInfo[idx][nOwner], 128, "%s", arrCoords2[12]);
            NegocioInfo[idx][nOwned] = strval(arrCoords2[13]);
            NegocioInfo[idx][nInterior] = strval(arrCoords2[14]);
            NegocioInfo[idx][nCosto] = strval(arrCoords2[15]);
            TotalNegs++;
        }
    }
   
    printf("Negocios Totales: %d (MAX: %d)",TotalNegs,MAX_NEGOCIOS);
    mysql_free_result();
    return 1;
}
Reply
#4

Es prбcticamente lo mismo, seguramente como 'id' es un valor establecido con 'Auto_Increment', al utilizar 'SELECT COUNT(*)' contarб todos los negocios insertados ( sin tomar en cuenta que si borras alguno ( anterior al ъltimo ), esa ID deja de existir y deja un campo vacнo el cual no contarб [ dejando un espacio y sacando el ъltimo campo de la tabla sin contarlo ] ).
pawn Код:
mysql_query("SELECT MAX(`id`) FROM `negocios`");
    mysql_store_result();
    mysql_fetch_row_format(row);
    negcount = strval(row);
Reply
#5

jaja que grande daniel. solucionado

Код:
cuando me deje te doy +rep porque ya te di una vez y no te deja de nuevo(creo que es por un tiempo):S
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)