16.11.2010, 17:38
(
Последний раз редактировалось Typhome; 24.11.2010 в 17:34.
)
sadasdasdasd
public SaveCar() // mySQL
{
MySQLConnect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB);
for(new idx = 115; idx < CARINFOMAX; idx++)
{
MySQLCheckConnection();
new query[MAX_STRING];
format(query, MAX_STRING, "UPDATE cars SET ");
MySQLUpdatePlayerStr2(query, idx, "Model", CarInfo[idx][cModel]);
MySQLUpdatePlayerFlo2(query, idx, "Locationx", CarInfo[idx][cLocationx]);
MySQLUpdatePlayerFlo2(query, idx, "Locationy", CarInfo[idx][cLocationy]);
MySQLUpdatePlayerFlo2(query, idx, "Locationz", CarInfo[idx][cLocationz]);
MySQLUpdatePlayerFlo2(query, idx, "Angle", CarInfo[idx][cAngle]);
MySQLUpdatePlayerStr2(query, idx, "ColorOne", CarInfo[idx][cColorOne]);
MySQLUpdatePlayerStr2(query, idx, "ColorTwo", CarInfo[idx][cColorTwo]);
//----------------------------------------------------------------------
MySQLUpdatePlayerStr2(query, idx, "Owner", CarInfo[idx][cOwner]);
MySQLUpdatePlayerStr2(query, idx, "Description", CarInfo[idx][cDescription]);
//----------------------------------------------------------------------
MySQLUpdatePlayerStr2(query, idx, "Value", CarInfo[idx][cValue]);
MySQLUpdatePlayerStr2(query, idx, "License", CarInfo[idx][cLicense]);
MySQLUpdatePlayerStr2(query, idx, "Owned", CarInfo[idx][cOwned]);
//----------------------------------------------------------------------
MySQLUpdatePlayerStr2(query, idx, "Paintjob", CarInfo[idx][cPaintjob]);
MySQLUpdatePlayerStr2(query, idx, "mod1", CarInfo[idx][cmod1]);
MySQLUpdatePlayerStr2(query, idx, "mod2", CarInfo[idx][cmod2]);
MySQLUpdatePlayerStr2(query, idx, "mod3", CarInfo[idx][cmod3]);
MySQLUpdatePlayerStr2(query, idx, "mod4", CarInfo[idx][cmod4]);
MySQLUpdatePlayerStr2(query, idx, "mod5", CarInfo[idx][cmod5]);
MySQLUpdatePlayerStr2(query, idx, "mod6", CarInfo[idx][cmod6]);
MySQLUpdatePlayerStr2(query, idx, "mod7", CarInfo[idx][cmod7]);
MySQLUpdatePlayerStr2(query, idx, "mod8", CarInfo[idx][cmod8]);
MySQLUpdatePlayerStr2(query, idx, "mod9", CarInfo[idx][cmod9]);
MySQLUpdatePlayerStr2(query, idx, "mod10", CarInfo[idx][cmod10]);
MySQLUpdatePlayerStr2(query, idx, "mod11", CarInfo[idx][cmod11]);
MySQLUpdatePlayerStr2(query, idx, "mod12", CarInfo[idx][cmod12]);
MySQLUpdatePlayerStr2(query, idx, "mod13", CarInfo[idx][cmod13]);
MySQLUpdatePlayerStr2(query, idx, "mod14", CarInfo[idx][cmod14]);
MySQLUpdatePlayerStr2(query, idx, "mod15", CarInfo[idx][cmod15]);
MySQLUpdatePlayerStr2(query, idx, "mod16", CarInfo[idx][cmod16]);
MySQLUpdatePlayerStr2(query, idx, "mod17", CarInfo[idx][cmod17]);
//----------------------------------------------------------------------
mysql_query(query);
}
}
public SaveCar() // mySQL
{
MySQLCheckConnection();
for(new idx = 115; idx < CARINFOMAX; idx++)
{
new query[MAX_STRING];
format(query, MAX_STRING, "UPDATE cars SET ");
MySQLUpdatePlayerStr2(query, idx, "Model", CarInfo[idx][cModel]);
MySQLUpdatePlayerFlo2(query, idx, "Locationx", CarInfo[idx][cLocationx]);
MySQLUpdatePlayerFlo2(query, idx, "Locationy", CarInfo[idx][cLocationy]);
MySQLUpdatePlayerFlo2(query, idx, "Locationz", CarInfo[idx][cLocationz]);
MySQLUpdatePlayerFlo2(query, idx, "Angle", CarInfo[idx][cAngle]);
MySQLUpdatePlayerStr2(query, idx, "ColorOne", CarInfo[idx][cColorOne]);
MySQLUpdatePlayerStr2(query, idx, "ColorTwo", CarInfo[idx][cColorTwo]);
//----------------------------------------------------------------------
MySQLUpdatePlayerStr2(query, idx, "Owner", CarInfo[idx][cOwner]);
MySQLUpdatePlayerStr2(query, idx, "Description", CarInfo[idx][cDescription]);
//----------------------------------------------------------------------
MySQLUpdatePlayerStr2(query, idx, "Value", CarInfo[idx][cValue]);
MySQLUpdatePlayerStr2(query, idx, "License", CarInfo[idx][cLicense]);
MySQLUpdatePlayerStr2(query, idx, "Owned", CarInfo[idx][cOwned]);
//----------------------------------------------------------------------
MySQLUpdatePlayerStr2(query, idx, "Paintjob", CarInfo[idx][cPaintjob]);
MySQLUpdatePlayerStr2(query, idx, "mod1", CarInfo[idx][cmod1]);
MySQLUpdatePlayerStr2(query, idx, "mod2", CarInfo[idx][cmod2]);
MySQLUpdatePlayerStr2(query, idx, "mod3", CarInfo[idx][cmod3]);
MySQLUpdatePlayerStr2(query, idx, "mod4", CarInfo[idx][cmod4]);
MySQLUpdatePlayerStr2(query, idx, "mod5", CarInfo[idx][cmod5]);
MySQLUpdatePlayerStr2(query, idx, "mod6", CarInfo[idx][cmod6]);
MySQLUpdatePlayerStr2(query, idx, "mod7", CarInfo[idx][cmod7]);
MySQLUpdatePlayerStr2(query, idx, "mod8", CarInfo[idx][cmod8]);
MySQLUpdatePlayerStr2(query, idx, "mod9", CarInfo[idx][cmod9]);
MySQLUpdatePlayerStr2(query, idx, "mod10", CarInfo[idx][cmod10]);
MySQLUpdatePlayerStr2(query, idx, "mod11", CarInfo[idx][cmod11]);
MySQLUpdatePlayerStr2(query, idx, "mod12", CarInfo[idx][cmod12]);
MySQLUpdatePlayerStr2(query, idx, "mod13", CarInfo[idx][cmod13]);
MySQLUpdatePlayerStr2(query, idx, "mod14", CarInfo[idx][cmod14]);
MySQLUpdatePlayerStr2(query, idx, "mod15", CarInfo[idx][cmod15]);
MySQLUpdatePlayerStr2(query, idx, "mod16", CarInfo[idx][cmod16]);
MySQLUpdatePlayerStr2(query, idx, "mod17", CarInfo[idx][cmod17]);
//----------------------------------------------------------------------
mysql_query(query);
}
}
stock LoadVehiclesFromDatabase()
{
new str[256], index;
mysql_query("SELECT * FROM `Vehicles`");
mysql_store_result();
if(mysql_num_rows() > 0)
{
while(mysql_fetch_row(str))
{
sscanf(str, "e<p<|>dffffdd>", Vehicles[index]);
CreateVehicle(Vehicles[index][vModelID], Vehicles[index][vPositionX], Vehicles[index][vPositionY], Vehicles[index][vPositionZ], Vehicles[index][vAngleZ], Vehicles[index][vColor1], Vehicles[index][vColor2], -1);
index++;
}
}
mysql_free_result();
print("\n");
printf("SERVER: Loaded %d MySQL vehicles successfully.", index);
return 1;
}
@ JaTochNietDan; Wouldn't using "sscanf" be a better option though? Instead of 20+ lines for one function, why not ~7 lines, most likely going a hell of a lot faster?
Example; pawn Код:
|
Sure, if he was trying to select information from the database, but in fact that is not what this topic is about, this topic is about updating information in the database, and the method he uses is just fine, all it does is build a string and execute it all at the same time.
Anyway as for the original poster, I think you need to look into MySQL a bit more and understand that the functions you're using are created for certain table designs and won't work with any random new table you've created, you'll have to create separate similar functions for that this particular method you're using to work with your new car information table, as the columns, table name etc are different. |
stock SaveVehicleToDatabase(vehicleid) { new ModelID, Color1, Color2; new Float:PositionX, Float:PositionY, Float:PositionZ, Float:AngleZ; ModelID = GetVehicleModel(vehicleid); GetVehiclePos(vehicleid, PositionX, PositionY, PositionZ); GetVehicleZAngle(vehicleid, AngleZ); GetVehicleColor(vehicleid, Color1, Color2); format(Query, sizeof(Query), "INSERT INTO `Vehicles` (ModelID, PositionX, PositionY, PositionZ, AngleZ, Color1, Color2) VALUES(%d, %f, %f, %f, %f, %d, %d)", ModelID, PositionX, PositionY, PositionZ, AngleZ, Color1, Color2); mysql_query(Query); return 1; }