/createhouse Error
#1

Changed my createhouse command to /createhouse <id>
When I type it, the house creates but it doesn't store into the database. I have pasted my debug code below.

pawn Код:
CMD:createhouse(playerid, params[])
{
    new string[128], query[300], Float:x, Float:y, Float:z, Float:a, houseid;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    if(sscanf(params, "i", houseid)) return SendClientMessage(playerid, -1, ""Grey"Syntax"White": /createhouse [house id].");
    if(houseid < 1)
    {
        SendClientMessage(playerid, -1, ""Red"Error"White": The house ID has to be 1 or over.");
        return 1;
    }
    format(query, sizeof(query), "SELECT ID FROM `houses` WHERE ID = '%i'", houseid);
    mysql_query(query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if(rows)
    {
        SendClientMessage(playerid, -1, ""Red"Error"White": That house ID already exists.");
        return 1;
    }
    mysql_free_result();
    HouseInfo[houseid][hID] = houseid;
    format(HouseInfo[houseid][hAddress], 100, "1 Hendre Road");
    format(HouseInfo[houseid][hOwner],  MAX_PLAYER_NAME, "None");
    HouseInfo[houseid][hOwned] = 0;
    HouseInfo[houseid][hPrice] = 120000;
    HouseInfo[houseid][hX] = x;
    HouseInfo[houseid][hY] = y;
    HouseInfo[houseid][hZ] = z;
    HouseInfo[houseid][hEnterX] = 2495.8945;
    HouseInfo[houseid][hEnterY] = -1693.3905;
    HouseInfo[houseid][hEnterZ] = 1014.7422;
    HouseInfo[houseid][hEnterA] = 179.3163;
    HouseInfo[houseid][hExitX] = x;
    HouseInfo[houseid][hExitY] = y;
    HouseInfo[houseid][hExitZ] = z;
    HouseInfo[houseid][hExitA] = 0;
    HouseInfo[houseid][hInterior] = 3;
    HouseInfo[houseid][hVirtualWorld] = houseid+1;
    HouseInfo[houseid][hPickUp] = CreateDynamicPickup(1273, 1, x, y, z, 0);
    format(string, sizeof(string), "ID: %d\n"Fuschia"Address"White": %s\n"Fuschia"Owner"White": %s\n"Fuschia"Price"White": $%d", HouseInfo[houseid][hID], HouseInfo[houseid][hAddress], HouseInfo[houseid][hOwner], HouseInfo[houseid][hPrice]);
    HouseInfo[houseid][hText] = CreateDynamic3DTextLabel(string, -1, x, y, z, 20.0);
    format(query, sizeof(query), "INSERT INTO houses (ID, Address, Owner, Owned, Price, X, Y, Z, EnterX, EnterY, EnterZ, EnterA, ExitX, ExitY, ExitZ, ExitA, Interior, VirtualWorld) VALUES (%d, '%s', '%s', %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %d, %d)", houseid, HouseInfo[houseid][hAddress], HouseInfo[houseid][hOwner], HouseInfo[houseid][hOwned], HouseInfo[houseid][hPrice], HouseInfo[houseid][hX], HouseInfo[houseid][hY], HouseInfo[houseid][hZ],
    HouseInfo[houseid][hEnterX], HouseInfo[houseid][hEnterY], HouseInfo[houseid][hEnterZ], HouseInfo[houseid][hEnterA], HouseInfo[houseid][hExitX], HouseInfo[houseid][hExitY], HouseInfo[houseid][hExitZ], HouseInfo[houseid][hExitA], HouseInfo[houseid][hInterior], HouseInfo[houseid][hVirtualWorld]);
    mysql_query(query);
    format(string, sizeof(string), ""Green"Notice"White": You have created house ID %d.", HouseInfo[houseid][hID]);
    SendClientMessage(playerid, -1, string);
    return 1;
}
Debug message:

Код:
[03:18:41] CMySQLHandler::Query(INSERT INTO houses (ID, Address, Owner, Owned, Price, X, Y, Z, EnterX, EnterY, EnterZ, EnterA, ExitX, ExitY, ExitZ, ExitA, Interior, VirtualWorld) VALUES (5, '1 Hendre Road', 'None', 0, 120000, 1668.516479, -2317.446044, 13.382812, 2495.894531, -1693.390502, 1014.742187, 179.316299, 1668.516479, -2) - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1)
My previous command was:

pawn Код:
CMD:createhouse(playerid, params[])
{
    new string[128], query[1500], Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    if(isnull(params)) return SendClientMessage(playerid, -1, ""Grey"Syntax"White": /createhouse [houseid].");
    for(new houseid=1; houseid<MAX_HOUSES; houseid++)
    {
        if(HouseInfo[houseid][hID] != 0) continue;
        HouseInfo[houseid][hID] = houseid;
        format(HouseInfo[houseid][hAddress], 100, "1 Hendre Road", params);
        format(HouseInfo[houseid][hOwner],      MAX_PLAYER_NAME, "None");
        HouseInfo[houseid][hOwned] = 0;
        HouseInfo[houseid][hPrice] = 120000;
        HouseInfo[houseid][hX] = x;
        HouseInfo[houseid][hY] = y;
        HouseInfo[houseid][hZ] = z;
        HouseInfo[houseid][hEnterX] = 2495.8945;
        HouseInfo[houseid][hEnterY] = -1693.3905;
        HouseInfo[houseid][hEnterZ] = 1014.7422;
        HouseInfo[houseid][hEnterA] = 179.3163;
        HouseInfo[houseid][hExitX] = x;
        HouseInfo[houseid][hExitY] = y;
        HouseInfo[houseid][hExitZ] = z;
        HouseInfo[houseid][hExitA] = 0;
        HouseInfo[houseid][hInterior] = 3;
        HouseInfo[houseid][hVirtualWorld] = houseid+1;
        HouseInfo[houseid][hPickUp] = CreateDynamicPickup(1273, 1, x, y, z, 0);
        format(string, sizeof(string), "ID: %d\n"Fuschia"Address"White": %s\n"Fuschia"Owner"White": %s\n"Fuschia"Price"White": $%d", HouseInfo[houseid][hID], HouseInfo[houseid][hAddress], HouseInfo[houseid][hOwner], HouseInfo[houseid][hPrice]);
        HouseInfo[houseid][hText] = CreateDynamic3DTextLabel(string, -1, x, y, z, 20.0);
        format(query, sizeof(query), "INSERT INTO houses (ID, Address, Owner, Owned, Price, X, Y, Z, EnterX, EnterY, EnterZ, EnterA, ExitX, ExitY, ExitZ, ExitA, Interior, VirtualWorld) VALUES (%d, '%s', '%s', %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %d, %d)", HouseInfo[houseid][hID], HouseInfo[houseid][hAddress], HouseInfo[houseid][hOwner], HouseInfo[houseid][hOwned], HouseInfo[houseid][hPrice], HouseInfo[houseid][hX], HouseInfo[houseid][hY], HouseInfo[houseid][hZ],
                HouseInfo[houseid][hEnterX], HouseInfo[houseid][hEnterY], HouseInfo[houseid][hEnterZ], HouseInfo[houseid][hEnterA], HouseInfo[houseid][hExitX], HouseInfo[houseid][hExitY], HouseInfo[houseid][hExitZ], HouseInfo[houseid][hExitA], HouseInfo[houseid][hInterior], HouseInfo[houseid][hVirtualWorld]);
        mysql_query(query);
        format(string, sizeof(string), ""Green"Notice"White": You have created house ID %d.", HouseInfo[houseid][hID]);
        SendClientMessage(playerid, -1, string);
        break;
    }
    return 1;
}
I haven't touched the INSERT INTO query so I don't understand why.
Reply
#2

pawn Код:
COMMAND:createhouse(playerid, params[])
{
    new string[128], query[300], Float:x, Float:y, Float:z, Float:a, houseid;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    if(sscanf(params, "i", houseid)) return SendClientMessage(playerid, -1, ""Grey"Syntax"White": /createhouse [house id].");
    if(houseid < 1)
    {
        SendClientMessage(playerid, -1, ""Red"Error"White": The house ID has to be 1 or over.");
        return 1;
    }
    format(query, sizeof(query), "SELECT ID FROM `houses` WHERE ID = '%i'", houseid);
    mysql_query(query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if(rows)
    {
        SendClientMessage(playerid, -1, ""Red"Error"White": That house ID already exists.");
        return 1;
    }
    mysql_free_result();
    HouseInfo[houseid][hID] = houseid;
    format(HouseInfo[houseid][hAddress], 100, "1 Hendre Road");
    format(HouseInfo[houseid][hOwner],  MAX_PLAYER_NAME, "None");
    HouseInfo[houseid][hOwned] = 0;
    HouseInfo[houseid][hPrice] = 120000;
    HouseInfo[houseid][hX] = x;
    HouseInfo[houseid][hY] = y;
    HouseInfo[houseid][hZ] = z;
    HouseInfo[houseid][hEnterX] = 2495.8945;
    HouseInfo[houseid][hEnterY] = -1693.3905;
    HouseInfo[houseid][hEnterZ] = 1014.7422;
    HouseInfo[houseid][hEnterA] = 179.3163;
    HouseInfo[houseid][hExitX] = x;
    HouseInfo[houseid][hExitY] = y;
    HouseInfo[houseid][hExitZ] = z;
    HouseInfo[houseid][hExitA] = 0;
    HouseInfo[houseid][hInterior] = 3;
    HouseInfo[houseid][hVirtualWorld] = houseid+1;
    HouseInfo[houseid][hPickUp] = CreateDynamicPickup(1273, 1, x, y, z, 0);
    format(string, sizeof(string), "ID: %d\n"Fuschia"Address"White": %s\n"Fuschia"Owner"White": %s\n"Fuschia"Price"White": $%d", HouseInfo[houseid][hID], HouseInfo[houseid][hAddress], HouseInfo[houseid][hOwner], HouseInfo[houseid][hPrice]);
    HouseInfo[houseid][hText] = CreateDynamic3DTextLabel(string, -1, x, y, z, 20.0);
    format(query, sizeof(query), "INSERT INTO houses (`ID`, `Address`, `Owner`,`Owned`, `Price`,` X`, `Y`, `Z`, `EnterX`, `EnterY`, `EnterZ`, `EnterA`, `ExitX`, `ExitY`, `ExitZ`, `ExitA`, `Interior`, `VirtualWorld`) VALUES (%d, '%s', '%s', %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %d, %d)", houseid, HouseInfo[houseid][hAddress], HouseInfo[houseid][hOwner], HouseInfo[houseid][hOwned], HouseInfo[houseid][hPrice], HouseInfo[houseid][hX], HouseInfo[houseid][hY], HouseInfo[houseid][hZ],
    HouseInfo[houseid][hEnterX], HouseInfo[houseid][hEnterY], HouseInfo[houseid][hEnterZ], HouseInfo[houseid][hEnterA], HouseInfo[houseid][hExitX], HouseInfo[houseid][hExitY], HouseInfo[houseid][hExitZ], HouseInfo[houseid][hExitA], HouseInfo[houseid][hInterior], HouseInfo[houseid][hVirtualWorld]);
    mysql_query(query);
    format(string, sizeof(string), ""Green"Notice"White": You have created house ID %d.", HouseInfo[houseid][hID]);
    SendClientMessage(playerid, -1, string);
    return 1;
}
Try this
Reply
#3

Do as the debug message instructed; read up on the syntax. If you did so you would have your solution in the matter of minutes.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)