db_get_field_assoc
#1

This code

PHP код:
stock LoadWeeds()
{
    new 
DBResult:dbresult;
    
dbresult db_query(Database"SELECT * FROM `plants` ORDER BY `plantid`");
    for (new 
idb_num_rows(dbresult); != ji++)
    {
        
PlantInfo[i][plantID] = db_get_field_assoc_int(dbresult"plantid");
        
PlantInfo[i][plantX] = db_get_field_assoc_float(dbresult"plantX");
        
PlantInfo[i][plantY] = db_get_field_assoc_float(dbresult"plantY");
        
PlantInfo[i][plantZ] = db_get_field_assoc_float(dbresult"plantZ");
        
PlantInfo[i][plantInt] = db_get_field_assoc_int(dbresult"plantInt");
        
PlantInfo[i][plantVW] = db_get_field_assoc_int(dbresult"plantVW");
        
PlantInfo[i][plantValue] = db_get_field_assoc_int(dbresult"plantValue");
        
PlantInfo[i][plantExist] = true;
        
PlantInfo[i][plantObject] = CreateDynamicObject(3409PlantInfo[i][plantX], PlantInfo[i][plantY], PlantInfo[i][plantZ], 0.00.00.0PlantInfo[i][plantVW], PlantInfo[i][plantInt]);
        
db_next_row(dbresult);
    }
    
db_free_result(dbresult);
    return 
1;

gives these errors

Код:
[00:14:47] [Error] db_query: invalid database handle 0
[00:14:47] [Error] db_num_rows(): invalid result handle 0
[00:14:47] [Error] db_free_result(): invalid result handle 0
why is that?
Reply
#2

You will need to debug it manually to see where exactly this occurs. There are a couple of reasons I can think of:

- Query failed (a warning in console would be given).
- Trying to retrieve the data before executing the query.
- Having more than one variable with DBResult: tag and using (by accident) the one which has not been assigned any value by db_query.
Reply
#3

My functions used OnGameModeInit so you may get an idea where the problem is coming from;

NOTE; Ignore the bad indentation, It somehow became like that after I copy pasted these in the forum and yeah about the Query failed thing, I never received any warning.

PHP код:
stock Plant_Load(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `plants` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"type"fieldsizeof(field));         PlantInfo[i][plantType] = strval(field);
        
db_get_field_assoc(dbresult"drugs"fieldsizeof(field));        PlantInfo[i][plantDrugs] = strval(field);
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));            PlantInfo[i][plantPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));            PlantInfo[i][plantPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));            PlantInfo[i][plantPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"a"fieldsizeof(field));            PlantInfo[i][plantPos][3] = floatstr(field);
        
db_get_field_assoc(dbresult"interior"fieldsizeof(field));        PlantInfo[i][plantInterior] = strval(field);
        
db_get_field_assoc(dbresult"world"fieldsizeof(field));        PlantInfo[i][plantWorld] = strval(field);
        
PlantInfo[i][plantExists] = true;
        
ServerInfo[total_plants] ++;
        
Plant_Refresh(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadDealership(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `dealership` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"owner"fieldsizeof(field));         DealershipInfo[i][dealerOwner] = strval(field);
        
db_get_field_assoc(dbresult"price"fieldsizeof(field));         DealershipInfo[i][dealerPrice] = strval(field);
        
db_get_field_assoc(dbresult"name"fieldsizeof(field));         format(DealershipInfo[i][dealerName], 64field);
        
db_get_field_assoc(dbresult"earnedcash"fieldsizeof(field));     DealershipInfo[i][dealerCash] = strval(field);
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));             DealershipInfo[i][dealerPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));             DealershipInfo[i][dealerPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));             DealershipInfo[i][dealerPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"sx"fieldsizeof(field));             DealershipInfo[i][dealerSpawnPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"sy"fieldsizeof(field));             DealershipInfo[i][dealerSpawnPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"sz"fieldsizeof(field));             DealershipInfo[i][dealerSpawnPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"sa"fieldsizeof(field));             DealershipInfo[i][dealerSpawnPos][3] = floatstr(field);
        
ServerInfo[total_dealerships] ++;
        
DealershipInfo[i][dealerExist] = true;
        
RefreshDealership(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadDealershipVehicle(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `dvehicles` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"dealershipid"fieldsizeof(field)); DVehicleInfo[i][dealershipID] = strval(field);
        
db_get_field_assoc(dbresult"model"fieldsizeof(field));         DVehicleInfo[i][dealerModel] = strval(field);
        
db_get_field_assoc(dbresult"price"fieldsizeof(field));         DVehicleInfo[i][dvehiclePrice] = strval(field);
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));             DVehicleInfo[i][dvehiclePos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));             DVehicleInfo[i][dvehiclePos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));             DVehicleInfo[i][dvehiclePos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"a"fieldsizeof(field));             DVehicleInfo[i][dvehiclePos][3] = floatstr(field);
        
DVehicleInfo[i][dvehicleExist] = true;
        
RefreshDealershipVehicle(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadATM(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `atm` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));        ATMInfo[i][atmPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));        ATMInfo[i][atmPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));        ATMInfo[i][atmPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"a"fieldsizeof(field));        ATMInfo[i][atmPos][3] = floatstr(field);
        
db_get_field_assoc(dbresult"interior"fieldsizeof(field)); ATMInfo[i][atmInterior] = strval(field);
        
db_get_field_assoc(dbresult"world"fieldsizeof(field));     ATMInfo[i][atmWorld] = strval(field);
        
ServerInfo[total_atms] ++;
        
ATMInfo[i][atmExist] = true;
        
RefreshATM(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock Detector_Load(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `detectors` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));         MetalDetectors[i][detectorPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));         MetalDetectors[i][detectorPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));        MetalDetectors[i][detectorPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"a"fieldsizeof(field));        MetalDetectors[i][detectorPos][3] = floatstr(field);
        
db_get_field_assoc(dbresult"interior"fieldsizeof(field)); MetalDetectors[i][detectorInterior] = strval(field);
        
db_get_field_assoc(dbresult"world"fieldsizeof(field));     MetalDetectors[i][detectorWorld] = strval(field);
        
MetalDetectors[i][detectorExists] = true;
        
ServerInfo[total_detectors] ++;
        
Detector_Refresh(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadRepairGarage(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `repairgarage` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));        RepairInfo[i][repairPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));        RepairInfo[i][repairPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));        RepairInfo[i][repairPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"cost"fieldsizeof(field));     RepairInfo[i][repairCost] = strval(field);
        
ServerInfo[total_repair] ++;
        
RefreshRepairGarage(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadGarbage(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `garbage` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"model"fieldsizeof(field));     GarbageInfo[i][garbageModel] = strval(field);
        
db_get_field_assoc(dbresult"capacity"fieldsizeof(field)); GarbageInfo[i][garbageCapacity] = strval(field);
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));        GarbageInfo[i][garbagePos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));        GarbageInfo[i][garbagePos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));        GarbageInfo[i][garbagePos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"a"fieldsizeof(field));        GarbageInfo[i][garbagePos][3] = floatstr(field);
        
db_get_field_assoc(dbresult"interior"fieldsizeof(field)); GarbageInfo[i][garbageInterior] = strval(field);
        
db_get_field_assoc(dbresult"world"fieldsizeof(field));     GarbageInfo[i][garbageWorld] = strval(field);
        
ServerInfo[total_garbages] ++;
        
GarbageInfo[i][garbageExists] = true;
        
RefreshGarbage(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadTower(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `towers` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));        TowerInfo[i][towerX] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));        TowerInfo[i][towerY] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));        TowerInfo[i][towerZ] = floatstr(field);
        
db_get_field_assoc(dbresult"rx"fieldsizeof(field));       TowerInfo[i][towerRX] = floatstr(field);
        
db_get_field_assoc(dbresult"ry"fieldsizeof(field));       TowerInfo[i][towerRY] = floatstr(field);
        
db_get_field_assoc(dbresult"rz"fieldsizeof(field));       TowerInfo[i][towerRZ] = floatstr(field);
        
db_get_field_assoc(dbresult"interior"fieldsizeof(field)); TowerInfo[i][towerInterior] = strval(field);
        
db_get_field_assoc(dbresult"world"fieldsizeof(field));     TowerInfo[i][towerWorld] = strval(field);
        
ServerInfo[total_towers] ++;
        
RefreshTower(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock Speed_Load(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `speedcam` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));        SpeedInfo[i][speedPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));        SpeedInfo[i][speedPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));        SpeedInfo[i][speedPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"a"fieldsizeof(field));        SpeedInfo[i][speedPos][3] = floatstr(field);
        
db_get_field_assoc(dbresult"range"fieldsizeof(field));    SpeedInfo[i][speedRange] = floatstr(field);
        
db_get_field_assoc(dbresult"limit"fieldsizeof(field));    SpeedInfo[i][speedLimit] = floatstr(field);
        
ServerInfo[total_speedcam] ++;
        
Speed_Refresh(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadVehicleDamage(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[32]
    ;
    
format(querysizeof(query), "SELECT * FROM `cardamage` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(!
IsValidVehicle(DynamicVehicle[i][vID]))
        return 
printf("[LoadVehicleDamage()] Vehicle for Dynamic Vehicle #%d hasn't been spawned."i);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"health"fieldsizeof(field));    DynamicVehicle[i][vHealth] = floatstr(field);
        
db_get_field_assoc(dbresult"panel"fieldsizeof(field));     DynamicVehicle[i][vDamages][0] = strval(field);
        
db_get_field_assoc(dbresult"door"fieldsizeof(field));      DynamicVehicle[i][vDamages][1] = strval(field);
        
db_get_field_assoc(dbresult"lights"fieldsizeof(field));    DynamicVehicle[i][vDamages][2] = strval(field);
        
db_get_field_assoc(dbresult"tires"fieldsizeof(field));     DynamicVehicle[i][vDamages][3] = strval(field);
        
SetVehicleHealth(DynamicVehicle[i][vID], DynamicVehicle[i][vHealth]);
        
UpdateVehicleDamageStatus(DynamicVehicle[i][vID], DynamicVehicle[i][vDamages][0], DynamicVehicle[i][vDamages][1], DynamicVehicle[i][vDamages][2], DynamicVehicle[i][vDamages][3]);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadVehicleStorage(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20],
        var[
32]
    ;
    
format(querysizeof(query), "SELECT * FROM `carstorage` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        for(new 
020x++)
        {
            
format(var, 32"caritemname%d"1);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field));            format(CarItem[i][x][carItemName], 32field);
            
format(var, 32"caritemquantity%d"1);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field));            CarItem[i][x][carItemQuantity] = strval(field);
            
SetCarInventory(ixCarItem[i][x][carItemName], CarItem[i][x][carItemQuantity]);
        }
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadVehicle(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20],
        var[
32]
    ;
    
format(querysizeof(query), "SELECT * FROM `vehicles` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"owner"fieldsizeof(field));            DynamicVehicle[i][vOwner] = strval(field);
        
db_get_field_assoc(dbresult"type"fieldsizeof(field));                DynamicVehicle[i][vType] = strval(field);
        
db_get_field_assoc(dbresult"model"fieldsizeof(field));            DynamicVehicle[i][vModel] = strval(field);
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));                DynamicVehicle[i][vPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));                DynamicVehicle[i][vPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));                DynamicVehicle[i][vPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"a"fieldsizeof(field));                DynamicVehicle[i][vPos][3] = floatstr(field);
        
db_get_field_assoc(dbresult"interior"fieldsizeof(field));         DynamicVehicle[i][vInterior] = strval(field);
        
db_get_field_assoc(dbresult"world"fieldsizeof(field));             DynamicVehicle[i][vWorld] = strval(field);
        
db_get_field_assoc(dbresult"color1"fieldsizeof(field));           DynamicVehicle[i][vColor1] = strval(field);
        
db_get_field_assoc(dbresult"color2"fieldsizeof(field));             DynamicVehicle[i][vColor2] = strval(field);
        
db_get_field_assoc(dbresult"paintjob"fieldsizeof(field));         DynamicVehicle[i][vPaintjob] = strval(field);
        
db_get_field_assoc(dbresult"locked"fieldsizeof(field));             DynamicVehicle[i][vLocked] = strval(field);
        
db_get_field_assoc(dbresult"impound"fieldsizeof(field));          DynamicVehicle[i][vImpounded] = strval(field);
        
db_get_field_assoc(dbresult"impoundprice"fieldsizeof(field));     DynamicVehicle[i][vImpoundPrice] = strval(field);
        
db_get_field_assoc(dbresult"faction"fieldsizeof(field));             DynamicVehicle[i][vFaction] = strval(field);
        for(new 
014x++)
        {
            
format(var, 32"mod%d"1);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field));            DynamicVehicle[i][vMods][x] = strval(field);
        }
        
DynamicVehicle[i][vExist] = true;
        switch(
DynamicVehicle[i][vType])
        {
            case 
0ServerInfo[total_pvehicle] ++;
            case 
1ServerInfo[total_fvehicle] ++;
        }
        
SpawnDynamicVehicle(i);
        
LoadVehicleDamage(i);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadGas(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `gas` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));            GasInfo[i][gasPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));            GasInfo[i][gasPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));            GasInfo[i][gasPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"business"fieldsizeof(field));     GasInfo[i][gasBusiness] = strval(field);
        
db_get_field_assoc(dbresult"supply"fieldsizeof(field));       GasInfo[i][gasFuel] = strval(field);
        
GasInfo[i][gasExist] = true;
        
Gas_Refresh(i);
        
ServerInfo[total_gas]++;
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadDroppedWeapon(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `dropped` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"id"fieldsizeof(field));                DroppedItems[i][droppedID] = strval(field);
        
db_get_field_assoc(dbresult"itemname"fieldsizeof(field));            format(DroppedItems[i][droppedItem], 32field);
        
db_get_field_assoc(dbresult"itemplayer"fieldsizeof(field));        format(DroppedItems[i][droppedPlayer], 32field);
        
db_get_field_assoc(dbresult"itemmodel"fieldsizeof(field));        DroppedItems[i][droppedModel] = strval(field);
        
db_get_field_assoc(dbresult"itemweapon"fieldsizeof(field));       DroppedItems[i][droppedWeapon] = strval(field);
        
db_get_field_assoc(dbresult"itemammo"fieldsizeof(field));            DroppedItems[i][droppedAmmo] = strval(field);
        
db_get_field_assoc(dbresult"itemx"fieldsizeof(field));            DroppedItems[i][droppedPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"itemy"fieldsizeof(field));            DroppedItems[i][droppedPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"itemz"fieldsizeof(field));            DroppedItems[i][droppedPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"itemint"fieldsizeof(field));            DroppedItems[i][droppedInt] = strval(field);
        
db_get_field_assoc(dbresult"itemworld"fieldsizeof(field));        DroppedItems[i][droppedWorld] = strval(field);
        
ServerInfo[total_weapons] ++;
        if (
IsWeaponModel(DroppedItems[i][droppedModel]))
        {
               
DroppedItems[i][droppedObject] = CreateDynamicObject(DroppedItems[i][droppedModel], DroppedItems[i][droppedPos][0], DroppedItems[i][droppedPos][1], DroppedItems[i][droppedPos][2], 93.7120.0120.0DroppedItems[i][droppedWorld], DroppedItems[i][droppedInt]);
        }
        
DroppedItems[i][droppedText3D] = CreateDynamic3DTextLabel(DroppedItems[i][droppedItem], COLOR_CYANDroppedItems[i][droppedPos][0], DroppedItems[i][droppedPos][1], DroppedItems[i][droppedPos][2], 15.0INVALID_PLAYER_IDINVALID_VEHICLE_ID0DroppedItems[i][droppedWorld], DroppedItems[i][droppedInt]);
    }
    
db_free_result(dbresult);
       return 
1;
}
stock Arrest_Load(id)
{
    new
        
query[128],
        
DBResult:dbresult,
        
field[20],
        
string[120]
    ;
    
    
format(querysizeof(query), "SELECT * FROM `arrestpoints` WHERE `id` = %d"id);
    
dbresult db_query(databasestring);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));            ArrestData[id][arrestPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));            ArrestData[id][arrestPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));            ArrestData[id][arrestPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"interior"fieldsizeof(field));        ArrestData[id][arrestInterior] = strval(field);
        
db_get_field_assoc(dbresult"world"fieldsizeof(field));        ArrestData[id][arrestWorld] = strval(field);
        
db_get_field_assoc(dbresult"type"fieldsizeof(field));            ArrestData[id][arrestType] = strval(field);
        
format(stringsizeof(string), "[Arrest %d]\n{FFFFFF}/arrest to arrest the suspect."id);
        
ArrestData[id][arrestPickup] = CreateDynamicPickup(124723ArrestData[id][arrestPos][0], ArrestData[id][arrestPos][1], ArrestData[id][arrestPos][2], ArrestData[id][arrestWorld], ArrestData[id][arrestInterior]);
        
ArrestData[id][arrestText3D] = CreateDynamic3DTextLabel(stringCOLOR_DARKBLUEArrestData[id][arrestPos][0], ArrestData[id][arrestPos][1], ArrestData[id][arrestPos][2], 10.0INVALID_VEHICLE_IDINVALID_PLAYER_ID0ArrestData[id][arrestWorld], ArrestData[id][arrestInterior]);
        
ServerInfo[total_arrests] ++;
    }
    
db_free_result(dbresult);
    return 
1;
}
stock LoadImpounds(i)
{
    new
        
DBResult:dbresult,
        
query[128],
        
field[20],
        
text[120]
    ;
    
    
format(querysizeof(query), "SELECT * FROM `impounds` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));    ImpoundInfo[i][impoundLot][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));    ImpoundInfo[i][impoundLot][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));    ImpoundInfo[i][impoundLot][2] = floatstr(field);
        
db_get_field_assoc(dbresult"rx"fieldsizeof(field));   ImpoundInfo[i][impoundRelease][0] = floatstr(field);
        
db_get_field_assoc(dbresult"ry"fieldsizeof(field));   ImpoundInfo[i][impoundRelease][1] = floatstr(field);
        
db_get_field_assoc(dbresult"rz"fieldsizeof(field));    ImpoundInfo[i][impoundRelease][2] = floatstr(field);
        
db_get_field_assoc(dbresult"ra"fieldsizeof(field));    ImpoundInfo[i][impoundRelease][3] = floatstr(field);
        
DestroyDynamic3DTextLabel(ImpoundInfo[i][impoundText3D][0]);
        
DestroyDynamic3DTextLabel(ImpoundInfo[i][impoundText3D][1]);
        
DestroyDynamicPickup(ImpoundInfo[i][impoundPickup]);
        
format(textsizeof(text), "[ Impound #%d ]\n{FFFFFF}/impound to impound a vehicle."i);
        
ImpoundInfo[i][impoundText3D][0] = CreateDynamic3DTextLabel(textCOLOR_DARKBLUEImpoundInfo[i][impoundLot][0], ImpoundInfo[i][impoundLot][1], ImpoundInfo[i][impoundLot][2], 20.0INVALID_PLAYER_IDINVALID_VEHICLE_ID0);
        
format(textsizeof(text), "[ {AFAFAF}Impound # %d Release Point{FFFFFF} ]"i);
        if(
ImpoundInfo[i][impoundRelease][0] != 0.0 && ImpoundInfo[i][impoundRelease][1] != 0.0)
        {
            
ImpoundInfo[i][impoundText3D][1] = CreateDynamic3DTextLabel(text, -1ImpoundInfo[i][impoundRelease][0], ImpoundInfo[i][impoundRelease][1], ImpoundInfo[i][impoundRelease][2], 20.0INVALID_PLAYER_IDINVALID_VEHICLE_ID0);
        }
        
ImpoundInfo[i][impoundPickup] = CreateDynamicPickup(123923ImpoundInfo[i][impoundLot][0], ImpoundInfo[i][impoundLot][1], ImpoundInfo[i][impoundLot][2]);
        
ServerInfo[total_impounds]++;
    }
    
db_free_result(dbresult);
       return 
1;
}
stock LoadBiz(i)
{
    new
        
query[128],
        
DBResult:dbresult,
        
field[130]
    ;
    
format(querysizeof(query), "SELECT * FROM `business` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"name"fieldsizeof(field));            format(BizInfo[i][bName], 32field);
        
db_get_field_assoc(dbresult"owner"fieldsizeof(field));        BizInfo[i][bOwner] = strval(field);
        
db_get_field_assoc(dbresult"message"fieldsizeof(field));        format(BizInfo[i][bMessage], 128field);
        
db_get_field_assoc(dbresult"type"fieldsizeof(field));            BizInfo[i][bType] = strval(field);
        
db_get_field_assoc(dbresult"price"fieldsizeof(field));        BizInfo[i][bPrice] = strval(field);
        
db_get_field_assoc(dbresult"forsale"fieldsizeof(field));        BizInfo[i][bForSale] = strval(field);
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));            BizInfo[i][bPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));            BizInfo[i][bPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));            BizInfo[i][bPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"a"fieldsizeof(field));            BizInfo[i][bPos][3] = floatstr(field);
        
db_get_field_assoc(dbresult"ix"fieldsizeof(field));            BizInfo[i][bInt][0] = floatstr(field);
        
db_get_field_assoc(dbresult"iy"fieldsizeof(field));            BizInfo[i][bInt][1] = floatstr(field);
        
db_get_field_assoc(dbresult"iz"fieldsizeof(field));            BizInfo[i][bInt][2] = floatstr(field);
        
db_get_field_assoc(dbresult"ia"fieldsizeof(field));            BizInfo[i][bInt][3] = floatstr(field);
        
db_get_field_assoc(dbresult"dx"fieldsizeof(field));            BizInfo[i][bDeliver][0] = floatstr(field);
        
db_get_field_assoc(dbresult"dy"fieldsizeof(field));            BizInfo[i][bDeliver][1] = floatstr(field);
        
db_get_field_assoc(dbresult"dz"fieldsizeof(field));            BizInfo[i][bDeliver][2] = floatstr(field);
        
db_get_field_assoc(dbresult"interior"fieldsizeof(field));        BizInfo[i][bInterior] = strval(field);
        
db_get_field_assoc(dbresult"exteriorint"fieldsizeof(field));  BizInfo[i][bExteriorInt] = strval(field);
        
db_get_field_assoc(dbresult"exteriorvw"fieldsizeof(field));   BizInfo[i][bExteriorVW] = strval(field);
        
db_get_field_assoc(dbresult"locked"fieldsizeof(field));       BizInfo[i][bLocked] = strval(field);
        
db_get_field_assoc(dbresult"vault"fieldsizeof(field));           BizInfo[i][bVault] = strval(field);
        
db_get_field_assoc(dbresult"supply"fieldsizeof(field));       BizInfo[i][bProducts] = strval(field);
        new var[
32];
        for(new 
020c++)
        {
            
format(var, 32"bizprice%d"c+1);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field));        BizInfo[i][bizPrice][c] = strval(field);
        }
        
BizInfo[i][bDeliveryType] = -1;
        
BizInfo[i][bNeededStock] = 0;
        
BizInfo[i][bNeedsDelivery] = false;
        
BizInfo[i][bDeliveryProcess] = false;
        
Business_Refresh(i);
        
ServerInfo[total_biz]++;
    }
    
db_free_result(dbresult);
    return 
1;
}
stock LoadHousesInventory(i)
{
    new
        
query[128],
        
DBResult:dbresult,
        
field[35],
        var[
24]
    ;
    
format(querysizeof(query), "SELECT * FROM `hinventory` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    if(
db_num_rows(dbresult))
    {
        for(new 
0MAX_HOUSE_INVENTORYc++)
        {
            
format(var, 24"name%d"1);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field));        format(HouseInventory[i][c][hInventoryname], 32field);
            
format(var, 24"quantity%d"1);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field));        HouseInventory[i][c][hInventoryQuantity] = strval(field);
            if(
HouseInventory[i][c][hInventoryQuantity] > 0)
            {
                
HouseInventory[i][c][hInventoryExist] = true;
            }
        }
    }
    
db_free_result(dbresult);
    return 
1;
}
stock LoadHouses(i)
{
    new
        
query[128],
        
DBResult:dbresult,
        
field[20]
    ;
    
format(querysizeof(query), "SELECT * FROM `houses` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"owner"fieldsizeof(field));        HouseInfo[i][hOwner] = strval(field);
        
db_get_field_assoc(dbresult"address"fieldsizeof(field));        format(HouseInfo[i][hAddress], 92field);
        
db_get_field_assoc(dbresult"forsale"fieldsizeof(field));      HouseInfo[i][hForSale] = strval(field);
        
db_get_field_assoc(dbresult"price"fieldsizeof(field));          HouseInfo[i][hPrice] = strval(field);
        
db_get_field_assoc(dbresult"x"fieldsizeof(field));              HouseInfo[i][housePos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"y"fieldsizeof(field));              HouseInfo[i][housePos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"z"fieldsizeof(field));              HouseInfo[i][housePos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"a"fieldsizeof(field));              HouseInfo[i][housePos][3] = floatstr(field);
        
db_get_field_assoc(dbresult"ix"fieldsizeof(field));              HouseInfo[i][houseInt][0] = floatstr(field);
        
db_get_field_assoc(dbresult"iy"fieldsizeof(field));              HouseInfo[i][houseInt][1] = floatstr(field);
        
db_get_field_assoc(dbresult"iz"fieldsizeof(field));              HouseInfo[i][houseInt][2] = floatstr(field);
        
db_get_field_assoc(dbresult"ia"fieldsizeof(field));              HouseInfo[i][houseInt][3] = floatstr(field);
        
db_get_field_assoc(dbresult"hox"fieldsizeof(field));              HouseInfo[i][houseObjectPos][0] = floatstr(field);
        
db_get_field_assoc(dbresult"hoy"fieldsizeof(field));              HouseInfo[i][houseObjectPos][1] = floatstr(field);
        
db_get_field_assoc(dbresult"hoz"fieldsizeof(field));              HouseInfo[i][houseObjectPos][2] = floatstr(field);
        
db_get_field_assoc(dbresult"hoa"fieldsizeof(field));              HouseInfo[i][houseObjectPos][3] = floatstr(field);
        
db_get_field_assoc(dbresult"interior"fieldsizeof(field));       HouseInfo[i][houseInterior] = strval(field);
        
db_get_field_assoc(dbresult"exteriorint"fieldsizeof(field));  HouseInfo[i][houseExteriorInt] = strval(field);
        
db_get_field_assoc(dbresult"exteriorvw"fieldsizeof(field));   HouseInfo[i][houseExteriorVW] = strval(field);
        
db_get_field_assoc(dbresult"locked"fieldsizeof(field));          HouseInfo[i][houseLocked] = strval(field);
        
db_get_field_assoc(dbresult"money"fieldsizeof(field));          HouseInfo[i][houseMoney] = strval(field);
        
db_get_field_assoc(dbresult"sx"fieldsizeof(field));              HouseInfo[i][houseStore][0] = floatstr(field);
        
db_get_field_assoc(dbresult"sy"fieldsizeof(field));              HouseInfo[i][houseStore][1] = floatstr(field);
        
db_get_field_assoc(dbresult"sz"fieldsizeof(field));              HouseInfo[i][houseStore][2] = floatstr(field);
        
House_Refresh(i);
        
ServerInfo[total_houses]++;
    }
    
db_free_result(dbresult);
    return 
1;
}
stock LoadFacPay(i)
{
    new
        
query[128],
        
DBResult:dbresult,
        
field[20],
        var[
32]
    ;
    
format(querysizeof(query), "SELECT * FROM `facpay` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    
    if(
db_num_rows(dbresult))
    {
        for(new 
x=0x<10x++)
        {
            
format(var, 32"facpay%d"x);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field)); FactionInfo[i][facPay][x] = strval(field);
        }
    }
    
db_free_result(dbresult);
    return 
1;
}
stock LoadFactions(i)
{
    new
        
query[128],
        
DBResult:dbresult,
        
field[20],
        
text[120],
        var[
32]
    ;
    
format(querysizeof(query), "SELECT * FROM `factions` WHERE `id` = %d"i);
    
dbresult db_query(databasequery);
    
    if(
db_num_rows(dbresult))
    {
        
db_get_field_assoc(dbresult"factionname"fieldsizeof(field));    format(FactionInfo[i][factionName], 62field);
        
db_get_field_assoc(dbresult"factionacronym"fieldsizeof(field)); format(FactionInfo[i][factionAcro], 10field);
        
db_get_field_assoc(dbresult"board"fieldsizeof(field));          format(FactionInfo[i][factionBoard], 110field);
        
db_get_field_assoc(dbresult"color"fieldsizeof(field));          FactionInfo[i][factionColor] = strval(field);
        
db_get_field_assoc(dbresult"type"fieldsizeof(field));           FactionInfo[i][factionType] = strval(field);
        
db_get_field_assoc(dbresult"rank1"fieldsizeof(field));          format(FactionInfo[i][factionRank1], 32field);
        
db_get_field_assoc(dbresult"rank2"fieldsizeof(field));          format(FactionInfo[i][factionRank2], 32field);
        
db_get_field_assoc(dbresult"rank3"fieldsizeof(field));          format(FactionInfo[i][factionRank3], 32field);
        
db_get_field_assoc(dbresult"rank4"fieldsizeof(field));          format(FactionInfo[i][factionRank4], 32field);
        
db_get_field_assoc(dbresult"rank5"fieldsizeof(field));          format(FactionInfo[i][factionRank5], 32field);
        
db_get_field_assoc(dbresult"rank6"fieldsizeof(field));          format(FactionInfo[i][factionRank6], 32field);
        
db_get_field_assoc(dbresult"rank7"fieldsizeof(field));          format(FactionInfo[i][factionRank7], 32field);
        
db_get_field_assoc(dbresult"rank8"fieldsizeof(field));          format(FactionInfo[i][factionRank8], 32field);
        
db_get_field_assoc(dbresult"rank9"fieldsizeof(field));          format(FactionInfo[i][factionRank9], 32field);
        
db_get_field_assoc(dbresult"rank10"fieldsizeof(field));         format(FactionInfo[i][factionRank10], 32field);
        
db_get_field_assoc(dbresult"lockerx"fieldsizeof(field));        FactionInfo[i][factionLocker][0] = floatstr(field);
        
db_get_field_assoc(dbresult"lockery"fieldsizeof(field));        FactionInfo[i][factionLocker][1] = floatstr(field);
        
db_get_field_assoc(dbresult"lockerz"fieldsizeof(field));        FactionInfo[i][factionLocker][2] = floatstr(field);
        
db_get_field_assoc(dbresult"lockerint"fieldsizeof(field));      FactionInfo[i][factionLockerInt] = strval(field);
        
db_get_field_assoc(dbresult"lockervw"fieldsizeof(field));       FactionInfo[i][factionLockerVw] = strval(field);
        for(new 
x=0x<10x++)
        {
            
format(var, 32"gun%d"1);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field));          FactionInfo[i][factionGuns][x] = strval(field);
            
format(var, 32"ammo%d"1);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field));          FactionInfo[i][factionAmmo][x] = strval(field);
        }
        for(new 
x=0x<8x++)
        {
            
format(var, 32"skin%d"1);
            
db_get_field_assoc(dbresult, var, fieldsizeof(field));          FactionInfo[i][factionSkins][x] = strval(field);
        }
        
db_get_field_assoc(dbresult, var, fieldsizeof(field));              FactionInfo[i][factionCash] = strval(field);
        
DestroyDynamic3DTextLabel(FactionInfo[i][factionLockerText]);
        
format(textsizeof(text), "[ %s #%d ]\n{FFFFFF}/locker to access the locker.\n/fmotd to check the locker board note"FactionInfo[i][factionAcro], i);
        if(
FactionInfo[i][factionType] != FACTION_GANG)
        {
            
FactionInfo[i][factionLockerText] = CreateDynamic3DTextLabel(textFactionInfo[i][factionColor], FactionInfo[i][factionLocker][0], FactionInfo[i][factionLocker][1], FactionInfo[i][factionLocker][2]+0.1015.0INVALID_PLAYER_IDINVALID_VEHICLE_ID0FactionInfo[i][factionLockerVw], FactionInfo[i][factionLockerInt]);
        }
        else
        {
            
FactionInfo[i][factionLockerText] = CreateDynamic3DTextLabel(text0xF0CC00FFFactionInfo[i][factionLocker][0], FactionInfo[i][factionLocker][1], FactionInfo[i][factionLocker][2]+0.1015.0INVALID_PLAYER_IDINVALID_VEHICLE_ID0FactionInfo[i][factionLockerVw], FactionInfo[i][factionLockerInt]);
        }
        
ServerInfo[total_factions]++;
    }
    
db_free_result(dbresult);
    return 
1;

Reply
#4

This is not a good way to load the data. Send only a single query and use a loop. Plus an extra variable for the ID so instead of the array index, you will have a way to recognize in the database. An example:
PHP код:
Plants_Load()
{
    new 
DBResultdbresult db_query(database"SELECT * FROM plants ORDER BY id");
    for (new 
idb_num_rows(dbresult); != ji++)
    {
        
PlantInfo[i][plantID] = db_get_field_assoc_int(dbresult"id");
        
PlantInfo[i][plantType] = db_get_field_assoc_int(dbresult"type");
        
PlantInfo[i][plantDrugs] = db_get_field_assoc_int(dbresult"drugs");
        
PlantInfo[i][plantPos][0] = db_get_field_assoc_float(dbresult"x");
        
PlantInfo[i][plantPos][1] = db_get_field_assoc_float(dbresult"y");
        
PlantInfo[i][plantPos][2] = db_get_field_assoc_float(dbresult"z");
        
PlantInfo[i][plantPos][3] = db_get_field_assoc_float(dbresult"a");
        
PlantInfo[i][plantInterior] = db_get_field_assoc_int(dbresult"interior");
        
PlantInfo[i][plantWorld] = db_get_field_assoc_int(dbresult"world");
        
PlantInfo[i][plantExists] = true;
        
ServerInfo[total_plants]++;
        
Plant_Refresh(i);
        
db_next_row(dbresult)
    }
    
db_free_result(dbresult);

As for the initial issue, I took a look at your code but didn't notice anything. Debug it as:
pawn Код:
// loading plants

// print message

// loading dealership

// print message

// loading dealership vehicles

// print message

// and so on..
Reply
#5

They are debugged using the ServerInfo that you saw along with the function (but somehow the error are all shown up first before the loading message at OnGameModeInit)

So if I change the way how I load the data, there might be a possibility that will fix the problem?

EDIT; Do I really have to make these stuffs, plantID? What will be they use for anyway?
Reply
#6

If the error is given before OnGameModeInit is called in the script, you may want to look for filterscripts (even though it'd give the message while loading) or includes that use this function.
Reply
#7

None of filterscripts nor include uses SQLite, so this is the only thing I suspected that causes these errors, However thank you for helping me out. I will be checking the script's behavior and will report it back to you in a few hours (or tomorrow) - Recoding the whole thing lol didn't knew that I coded it in the wrong way..
Reply
#8

db_get_field_assoc is used for retrieving contents which is string right?
Reply
#9

2 years later.
I am using @Konstantinos method and it's giving me errors

Код:
[00:14:47] [Error] db_query: invalid database handle 0
[00:14:47] [Error] db_num_rows(): invalid result handle 0
[00:14:47] [Error] db_free_result(): invalid result handle 0
Code:
PHP код:
stock LoadWeeds()
{
    new 
DBResult:dbresult;
    
dbresult db_query(Database"SELECT * FROM `plants` ORDER BY `plantid`");

    for (new 
idb_num_rows(dbresult); != ji++)
    {
        
PlantInfo[i][plantID] = db_get_field_assoc_int(dbresult"plantid");
        
PlantInfo[i][plantX] = db_get_field_assoc_float(dbresult"plantX");
        
PlantInfo[i][plantY] = db_get_field_assoc_float(dbresult"plantY");
        
PlantInfo[i][plantZ] = db_get_field_assoc_float(dbresult"plantZ");
        
PlantInfo[i][plantInt] = db_get_field_assoc_int(dbresult"plantInt");
        
PlantInfo[i][plantVW] = db_get_field_assoc_int(dbresult"plantVW");
        
PlantInfo[i][plantValue] = db_get_field_assoc_int(dbresult"plantValue");
        
PlantInfo[i][plantExist] = true;

        
PlantInfo[i][plantObject] = CreateDynamicObject(3409PlantInfo[i][plantX], PlantInfo[i][plantY], PlantInfo[i][plantZ], 0.00.00.0PlantInfo[i][plantVW], PlantInfo[i][plantInt]);
        
db_next_row(dbresult);
    }
    
db_free_result(dbresult);
    return 
1;

Reply
#10

Bump 4char
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)