Loading houses problem (MySQL R33)
#5

Quote:
Originally Posted by M4D
Посмотреть сообщение
hi
you don't need to loop between house ids !
just select all rows and then catche them
i'll edit your code:

pawn Код:
forward LoadHouses();
public LoadHouses()
{
    mysql_tquery(mysql, "SELECT * FROM `HouseTable`", "OnLoadHouses");
    return 1;
}
forward OnLoadHouses();
public OnLoadHouses()
{
    for(new i = 1; i <= cache_get_row_count(); i++)
    {
        new
            savingstring[400],
            lString[500];


        cache_get_field_content(0, "ID", savingstring), hInfo[i][HID] = strval(savingstring);
        cache_get_field_content(0, "Owner", hInfo[i][HID], mysql);

        cache_get_field_content(0, "Owned", savingstring), hInfo[i][Owned] = strval(savingstring);
        cache_get_field_content(0, "Locked", savingstring), hInfo[i][Locked] = strval(savingstring);
        cache_get_field_content(0, "Price", savingstring), hInfo[i][Price] = strval(savingstring);

        cache_get_field_content(0, "OX", savingstring), hInfo[i][OX] = strval(savingstring);
        cache_get_field_content(0, "OY", savingstring), hInfo[i][OY] = strval(savingstring);
        cache_get_field_content(0, "OZ", savingstring), hInfo[i][OZ] = strval(savingstring);


        cache_get_field_content(0, "World", savingstring), hInfo[i][World] = strval(savingstring);
        cache_get_field_content(0, "OnSale", savingstring), hInfo[i][OnSale] = strval(savingstring);


        cache_get_field_content(0, "InteriorID", savingstring), hInfo[i][InteriorID] = strval(savingstring);

        if(hInfo[i][OnSale] == 0 )
        {
            switch(hInfo[i][Owned])
            {
                case 0:
                {
                    format(lString, sizeof(lString), "House Owned: No\nHouse Owner: None\nHouse Price: $%i", hInfo[i][Price]);
                    hInfo[i][Label] = CreateDynamic3DTextLabel(lString, 0x00B9FFFF, hInfo[i][OX], hInfo[i][OY], hInfo[i][OZ]+0.5, 36.0);
                    hInfo[i][Icon] = CreateDynamicMapIcon(hInfo[i][OX], hInfo[i][OY], hInfo[i][OZ], 31, -1);
                    hInfo[i][EnterPickup] = CreateDynamicPickup(1273, 23, hInfo[i][OX], hInfo[i][OY], hInfo[i][OZ], -1, -1, -1, 36.0);
                }
                case 1:
                {
                    format(lString, sizeof(lString),"House Owned: Yes\nHouse Owner: %s\nHouse Locked: %s", hInfo[i][Owner], (hInfo[i][Locked] == 1) ? ("Yes") : ("No"));
                    hInfo[i][Label] = CreateDynamic3DTextLabel(lString, 0xFF0000FF, hInfo[i][OX], hInfo[i][OY], hInfo[i][OZ]+0.5, 36.0);
                    hInfo[i][EnterPickup] = CreateDynamicPickup(1273, 23, hInfo[i][OX],hInfo[i][OY], hInfo[i][OZ], -1, -1, -1, 36.0);
                }
            }
            CreatedHouses++;
        }
        if(hInfo[i][OnSale] == 1)
        {
            format(lString, sizeof(lString),"House Owned: Yes\nHouse Owner: %s\nHouse Price: $%i\nHouse On Sale: Yes", hInfo[i][Owner], hInfo[i][Price]);
            hInfo[i][Label] = CreateDynamic3DTextLabel(lString, 0xD65418FF, hInfo[i][OX], hInfo[i][OY], hInfo[i][OZ]+0.5, 36.0);
            hInfo[i][Icon] = CreateDynamicMapIcon(hInfo[i][OX], hInfo[i][OY], hInfo[i][OZ], 32, -1);
            hInfo[i][EnterPickup] = CreateDynamicPickup(1273, 23, hInfo[i][OX],hInfo[i][OY], hInfo[i][OZ], -1, -1, -1, 36.0);
            CreatedHouses++;
        }
    }
    printf("[House System] %i houses were created...", CreatedHouses);
    return 1;
}



and i have a question!
why you use "varchar" type for all columns ?
you don't need it. use integers + floats for integers and floats

for example:

cache_get_field_content(0, "Locked", savingstring), hInfo[i][Locked] = strval(savingstring);

"Locked" column will be only 1 or 0. you don't need use varchare type and then use strval !

or for positions !

edit your database + this function

good luck buddy
Hey, thanks. It works fine, and it shows how many houses have been loaded. However, it doesn't load the 3D Texts or the pickups.
Reply


Messages In This Thread
Loading houses problem (MySQL R33) - by FunnyBear - 23.02.2015, 19:08
Re: Loading houses problem (MySQL R33) - by PaulDinam - 23.02.2015, 19:14
Re: Loading houses problem (MySQL R33) - by FunnyBear - 23.02.2015, 19:19
Re: Loading houses problem (MySQL R33) - by M4D - 23.02.2015, 19:20
Re: Loading houses problem (MySQL R33) - by FunnyBear - 23.02.2015, 19:53

Forum Jump:


Users browsing this thread: 1 Guest(s)