command(mycars, playerid, params[])
{
if(Player[playerid][Adminlevel] == 6)
{
new Data[150],Field[258],idx;
new MyCarPlate[10], MyCarModel, MyCarStoreID;
mysql_queryS("SELECT * FROM `OwnedVehicles` WHERE `VehicleOwner` = '%s'",GetName(playerid));
mysql_store_result();
if(mysql_num_rows() == 1){
mysql_fetch_rowEx(Data);
Field = strtuk( Data, idx, '|' );
for(new s = 0; s < 17; s++)
{
switch(s)
{
case 0: MyCarStoreID = strval(Field);
case 1: MyCarModel = strval(Field);
case 10: strmid(MyCarPlate,Field,0,strlen(Field),10);
}
Field = strtuk( Data, idx, '|' );
}
fSendClientMessage(playerid, WHITE, "> #%d, ModelID: %d, Plate: %s",MyCarStoreID, MyCarModel, MyCarPlate);
}
if(mysql_num_rows() == 0){
SCM(playerid, YELLOW, "> You do not own any vehicles yet!");
}
}
return 1;
}
Hello Community!
I have finally fixed all my MYSQL errors so I can finally continue with my RP script. I just finished my Ownable Vehicle System but now I got a problem. When I do /mycars it has to load all the cars from the database that the player owns. Currently I got this, but it only loads one car. ( the first one it finds) pawn Код:
|
command(mycars, playerid, params[])
{
if(Player[playerid][Adminlevel] == 6)
{
for(new i=0; i<MAX_VEHICLES; i++)
{
new Data[150],Field[258],idx;
new MyCarPlate[10], MyCarModel, MyCarStoreID;
mysql_queryS("SELECT * FROM `OwnedVehicles` WHERE `VehicleOwner` = '%s'",GetName(playerid));
mysql_store_result();
if(mysql_num_rows() == 1)
{
mysql_fetch_rowEx(Data);
Field = strtuk( Data, idx, '|' );
for(new s = 0; s < 17; s++)
{
switch(s)
{
case 0: MyCarStoreID = strval(Field);
case 1: MyCarModel = strval(Field);
case 10: strmid(MyCarPlate,Field,0,strlen(Field),10);
}
Field = strtuk( Data, idx, '|' );
}
fSendClientMessage(playerid, WHITE, "> #%d, ModelID: %d, Plate: %s",MyCarStoreID, MyCarModel, MyCarPlate);
}
if(mysql_num_rows() == 0)
{
SCM(playerid, YELLOW, "> You do not own any vehicles yet!");
}
}
}
return 1;
}
A Player buys a car -> It stores it in the `OwnedVehicles` Table. A Player wants to see all his vehicles -> he types /mycars, which would sum up all the vehicles with his name in the `OwnedVehicles` Table. A Player wants to spawn one of his cars -> he types /getmycar [id] (1-10), so when they type /mycars the ids need to get assigned somewhere.
stock ReturnCCount()
{
mysql_query("SELECT * FROM OwnedVehicles");
mysql_store_result();
new users = mysql_num_rows();
mysql_free_result();
return users;
}
command(mycars, playerid, params[])
{
if(Player[playerid][Adminlevel] == 6)
{
for(new i=0; i<ReturnCCount(); i++)
{
new Data[150],Field[258],idx;
new MyCarPlate[10], MyCarModel, MyCarStoreID;
mysql_queryS("SELECT * FROM `OwnedVehicles` WHERE `VehicleOwner` = '%s'",GetName(playerid));
mysql_store_result();
if(mysql_num_rows() == 1)
{
mysql_fetch_rowEx(Data);
Field = strtuk( Data, idx, '|' );
for(new s = 0; s < 17; s++)
{
switch(s)
{
case 0: MyCarStoreID = strval(Field);
case 1: MyCarModel = strval(Field);
case 10: strmid(MyCarPlate,Field,0,strlen(Field),10);
}
Field = strtuk( Data, idx, '|' );
}
fSendClientMessage(playerid, WHITE, "> #%d, ModelID: %d, Plate: %s",MyCarStoreID, MyCarModel, MyCarPlate);
}
if(mysql_num_rows() == 0)
{
SCM(playerid, YELLOW, "> You do not own any vehicles yet!");
}
}
}
return 1;
}
if(mysql_num_rows() == 1)
pawn Код:
It there are more rows returned, your code doesn't do anything, as it skips both if-statements. You should loop through all rows returned, fetch the data from each row and display it. |
//some query
mysql_store_result();
while(mysql_retrieve_row()) //it will be running until there are no more rows to be retrieved
{
mysql_get_field("fieldname",wheretostorevalue); //macro for mysql_fetch_field_row
mysql_get_field(...);
mysql_get_field(...);
mysql_get_field(...);
mysql_get_field(...);
}
mysql_free_result();