help with mysql saving
#1

Hello,im kinda amateur in MySQL so i need help with saving,i did something already but it aint saving the thingies...heres the code

Код:
stock FactionsSave()
{


    for(new f = 0; f < 100; f++)
	{
	new QueryString[ 128 ], Query[128] ;
	format( Query, sizeof( Query ), "SELECT * FROM `factions` WHERE `fID` = '%d'", Factions[ f ][ fID ] );
	mysql_query( Query );
	mysql_store_result();
		
	if( mysql_num_rows() >= 1 )
	{
	    while( mysql_fetch_row_data() )
	    {
			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fName` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fName ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fRank1` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fRank1 ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fRank2` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fRank2 ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fRank3` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fRank3 ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fRank4` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fRank4 ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fRank5` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fRank5 ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fRank6` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fRank6 ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fEnteranceX` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fEnteranceX ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fEnteranceY` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fEnteranceY ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fEnteranceZ` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fEnteranceZ ], f );
			mysql_query( QueryString );
			
			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fExitX` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fExitX ], f );
			mysql_query( QueryString );
			
			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fExitY` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fExitY ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fExitZ` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fExitZ ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fInt` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fInt ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fID` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fID ], f );
			mysql_query( QueryString );

			format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET `fLocked` = '%d' WHERE `fID` = '%d'", Factions[ f ][ fLocked ], f );
			mysql_query( QueryString );
	        f++;
	    }
	}
}
	mysql_free_result();

	return 1;
}
and i think the loading is fucked up too

Код:
stock FactionsLoad()
{
	new QueryString[ 128 ], i = 1;

	mysql_query( "SELECT `fName`, `fRank1`,`fRank2`, `fRank3`, `fRank4`, `fRank5`, `fRank6`, `fEnteranceX`, `fEnteranceY`, `fEnteranceZ`, `fExitX`, `fExitY`, `fExitZ`, `fInt`, `fID`, `fLocked` FROM `factions`" );
	mysql_store_result();

	if( mysql_num_rows() >= 1 )
	{
	    while( mysql_fetch_row_data() )
	    {
	        mysql_fetch_field( "fName", QueryString );
	        Factions[ i ][ fName ] = strval( QueryString );
	        mysql_query( QueryString );

	        mysql_fetch_field( "fRank1", QueryString );
	        Factions[ i ][ fRank1 ] = strval( QueryString );
	        mysql_query( QueryString );

	        mysql_fetch_field( "fRank2", QueryString );
	        Factions[ i ][ fRank2 ] = strval( QueryString );
	        mysql_query( QueryString );

	        mysql_fetch_field( "fRank3", QueryString );
	        Factions[ i ][ fRank3 ] = strval( QueryString );
	        mysql_query( QueryString );

	        mysql_fetch_field( "fRank4", QueryString );
	        Factions[ i ][ fRank4 ] = strval( QueryString );
	        mysql_query( QueryString );

	        mysql_fetch_field( "fRank5", QueryString );
	        Factions[ i ][ fRank5 ] = strval( QueryString );
	        mysql_query( QueryString );

	        mysql_fetch_field( "fRank6", QueryString );
	        Factions[ i ][ fRank6 ] = strval( QueryString );
	        mysql_query( QueryString );

	        mysql_fetch_field( "fEnteranceX", QueryString );
	        Factions[ i ][ fEnteranceX ] = floatstr( QueryString );
	        mysql_query( QueryString );
	        
	        mysql_fetch_field( "fEnteranceY", QueryString );
	        Factions[ i ][ fEnteranceY ] = floatstr( QueryString );
	        mysql_query( QueryString );
	        
	        mysql_fetch_field( "fEnteranceZ", QueryString );
	        Factions[ i ][ fEnteranceZ ] = floatstr( QueryString );
	        mysql_query( QueryString );
	        
	        mysql_fetch_field( "fExitX", QueryString );
	        Factions[ i ][ fExitX ] = floatstr( QueryString );
	        mysql_query( QueryString );
	        
	        mysql_fetch_field( "fExitY", QueryString );
	        Factions[ i ][ fExitY ] = floatstr( QueryString );
	        mysql_query( QueryString );
	        
	        mysql_fetch_field( "fExitZ", QueryString );
	        Factions[ i ][ fExitZ ] = floatstr( QueryString );
	        mysql_query( QueryString );
	        
	        mysql_fetch_field( "fInt", QueryString );
	        Factions[ i ][ fInt ] = strval( QueryString );
			mysql_query( QueryString );

	        mysql_fetch_field( "fID", QueryString );
	        Factions[ i ][ fID ] = strval( QueryString );
			mysql_query( QueryString );

	        mysql_fetch_field( "fLocked", QueryString );
	        Factions[ i ][ fLocked ] = strval( QueryString );
	        mysql_query( QueryString );
	        i++;
	    }
	}

	mysql_free_result();

	return 1;
}
Reply
#2

which MySQL Plugin do you use?

Код:
	    while( mysql_fetch_row_data() )
	    {
	        imysql_fetch_field( "fName", QueryString ) == 1;
	        Factions[ i ][ fName ] = strval( QueryString );
	        mysql_query( QueryString );
		mysql_fetch_field( "fRank1", QueryString ) == 1;
	        
                Factions[ i ][ fRank1 ] = strval( QueryString );
	        mysql_query( QueryString );
	        i++;
    }
}
wtf, why do you use mysql quero 1000 times in your while?!
Reply
#3

umm i use strickenkid's mysql plugin,and ummh i dont know why
Reply
#4

Well your FactionsSave function makes very little sense, and has terrible optimization! I can't imagine how many queries are being executed in that single function within a couple of milliseconds, far too many anyway. Not to mention you're using a while loop to gather information on a single result! I would recommend doing something like this:

pawn Код:
stock FactionsSave()
{
    new QueryString[500], Query[128] ;
    mysql_query("SELECT fID FROM `factions`");
    mysql_store_result();
       
    while(mysql_fetch_row(result))
    {
        format( QueryString, sizeof( QueryString ), "UPDATE `factions` SET fName = %d, fRank1 = %d, fRank2 = %d, fRank3 = %d, fRank4 = %d, fRank5 = %d, fRank6 = %d  WHERE `fID` = '%d'", Factions[ f ][ fName ],  strval(result));
        mysql_query( QueryString );
    }
    mysql_free_result();

    return 1;
}
This code makes a lot more sense, although still not ideal. You're doing far less queries. Although you'll need to write that update query out, I won't write all of that for you

Just remember to add the variables at the end of the UPDATE query format too.
Reply
#5

thank you,im going to try this one

but umhh
how do i define the result?
Код:
while(mysql_fetch_row(result))
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)