Ich habe dir hier mal angefangen, für das was du beschrieben hast.
#define MAX_FRAKTIONEN 15
enum FrakDaten
{
    fName[128],
    fRang1[30],
    fRang2[30],
    fRang3[30],
    fRang4[30],
    fRang5[30],
    fRang6[30],
    fSpawnX,
    fSpawnY,
    fSpawnZ,
    fSpawnI
};
new FDaten[MAX_FRAKTIONEN][FrakDaten];
ocmd:createfraktion(playerid,params[])
{
    if(SpielerInfo[playerid][pAdminlevel] < 6) return SendClientMessage(playerid,Rot,"Möglich ab: "COLO" Adminrank 6");
    new input[128];
    if(sscanf(params,"s",input))return SendClientMessage(playerid,Rot,""COLO"Verwendung: "COLR"/createfraktion [Fraktionsname]");
    new i = GetFreeFrakID();
    if(i == -1) return SendClientMessage(playerid,Rot,"Es kann keine neue Fraktion erstellt werden. Maximum erreicht.");
    format(FDaten[i][fName], 128, input);
    GetPlayerPos(playerid, FDaten[i][fSpawnX], FDaten[i][fSpawnY], FDaten[i][fSpawnZ]); 
    FDaten[i][fSpawnI] = GetPlayerInterior(playerid);
    new query[256];
    format(query, sizeof(query), "INSERT INTO fraktionen (id, fname, fx, fy, fz, fi) VALUES ('%d', '%s', '%f', '%f', '%f', %d)", 
        i, FDaten[i][fName], FDaten[i][fSpawnX], FDaten[i][fSpawnY], FDaten[i][fSpawnZ], FDaten[i][fSpawnI]);
    mysql_query(query);
    return 1;
}
Hier darf AUTO_INCREMENT für die Spalte id nicht (!) verwendet werden, allerdings muss id den UNIQUE Key haben.
Außerdem brauchst du natürlich:
stock GetFreeFrakID()
{
    for(new i=0; i<MAX_FRAKTIONEN; i++)
    {
        if(!strlen(FDaten[i][fName])) return i;
    }
    return -1;
}