SA-MP Forums Archive
[MySQL] Loading Vehicles - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: [MySQL] Loading Vehicles (/showthread.php?tid=146112)



[MySQL] Loading Vehicles - Agent Smith - 05.05.2010

Hey guys, I'm currently scripting a MySQL RP GM but I've had a bit of trouble.

I've managed to setup the table for the vehicles and the first one loads up fine but the others don't seem to load. Here is my "LoadCars" function:

pawn Код:
public LoadCar()
{
  new DataString[ 128 ], Query[ 128 ], idx;
 
    format( Query, sizeof( Query ), "SELECT * FROM `Vehicles`");
    mysql_query( Query );
    mysql_store_result();
   
    mysql_fetch_field( "CarID", DataString );
    DynamicCars[ idx ][ CarID ] = strval( DataString );
   
    mysql_fetch_field( "CarModel", DataString );
    DynamicCars[ idx ][ CarModel ] = strval( DataString );
   
    mysql_fetch_field( "CarX", DataString );
    DynamicCars[ idx ][ CarX ] = strval( DataString );
   
    mysql_fetch_field( "CarY", DataString );
    DynamicCars[ idx ][ CarY ] = strval( DataString );
   
    mysql_fetch_field( "CarZ", DataString );
    DynamicCars[ idx ][ CarZ ] = strval( DataString );
   
    mysql_fetch_field( "CarAngle", DataString );
    DynamicCars[ idx ][ CarAngle ] = strval( DataString );
   
    mysql_fetch_field( "CarColor1", DataString );
    DynamicCars[ idx ][ CarColor1 ] = strval( DataString );
   
    mysql_fetch_field( "CarColor2", DataString );
    DynamicCars[ idx ][ CarColor2 ] = strval( DataString );
   
    mysql_fetch_field( "FactionCar", DataString );
    DynamicCars[ idx ][ FactionCar ] = strval( DataString );
   
    mysql_fetch_field( "CarType", DataString );
    DynamicCars[ idx ][ CarType ] = strval( DataString );
   
    mysql_free_result();
   
    CreateVehicle(DynamicCars[idx][CarModel],DynamicCars[idx][CarX],DynamicCars[idx][CarY],DynamicCars[idx][CarZ],DynamicCars[idx][CarAngle],DynamicCars[idx][CarColor1],DynamicCars[idx][CarColor2], -1);

    return 1;
}
What am I doing wrong?

- Samdudes


Re: [MySQL] Loading Vehicles - woot - 05.05.2010

Try debugging using print()


Re: [MySQL] Loading Vehicles - Agent Smith - 05.05.2010

I tried the print() but it shows that everything is loading properly. Non errors in the log its just the first vehicle is the vehicle table on the database loads but none of the other cars load


Re: [MySQL] Loading Vehicles - Calgon - 05.05.2010

You need to use while to continue executing, what your doing is only retrieving 1 (if any) result(s). Despite that, you unloaded the result too prematurely.

pawn Код:
public LoadCar()
{
  new DataString[ 128 ], Query[ 128 ], idx;

    format( Query, sizeof( Query ), "SELECT * FROM `Vehicles`");
    mysql_query( Query );
    mysql_store_result();

    while( mysql_fetch_row_data() )
    {
        mysql_fetch_field( "CarID", DataString );
        DynamicCars[ idx ][ CarID ] = strval( DataString );

        mysql_fetch_field( "CarModel", DataString );
        DynamicCars[ idx ][ CarModel ] = strval( DataString );

        mysql_fetch_field( "CarX", DataString );
        DynamicCars[ idx ][ CarX ] = strval( DataString );

        mysql_fetch_field( "CarY", DataString );
        DynamicCars[ idx ][ CarY ] = strval( DataString );

        mysql_fetch_field( "CarZ", DataString );
        DynamicCars[ idx ][ CarZ ] = strval( DataString );

        mysql_fetch_field( "CarAngle", DataString );
        DynamicCars[ idx ][ CarAngle ] = strval( DataString );

        mysql_fetch_field( "CarColor1", DataString );
        DynamicCars[ idx ][ CarColor1 ] = strval( DataString );

        mysql_fetch_field( "CarColor2", DataString );
        DynamicCars[ idx ][ CarColor2 ] = strval( DataString );

        mysql_fetch_field( "FactionCar", DataString );
        DynamicCars[ idx ][ FactionCar ] = strval( DataString );

        mysql_fetch_field( "CarType", DataString );
        DynamicCars[ idx ][ CarType ] = strval( DataString );

        CreateVehicle(DynamicCars[idx][CarModel],DynamicCars[idx][CarX],DynamicCars[idx][CarY],DynamicCars[idx][CarZ],DynamicCars[idx][CarAngle],DynamicCars[idx][CarColor1],DynamicCars[idx][CarColor2], -1);

        idx++;
    }
   
    mysql_free_result();

    return 1;
}
This will do the trick.


Re: [MySQL] Loading Vehicles - Agent Smith - 05.05.2010

Thank you so much Freddo [BINMAN]. Works like a dream