Halli hallo liebe brotfische
Ich bin momentan dabei, ein kleines System zu schreiben, welches Ingame erstellte Objekte in einer MySQL Datenbank speichert - und beim Serverstart wieder ausliest und erstellt. Dafür habe ich eine Tabelle in ungefähr diesem Stil angelegt:
Wie man sieht, ist in der Spalte "id" zwischen dem Vorletzten und dem letzten Eintrag eine Lücke (in der Nummerierung [ 4002, 4003, 4005] ).
Meine Frage ist nun, wie kann ich denn bitte Eintrag für Eintrag anhand der "id" auslesen, und diese Lücke überspringen.
Mein Code bisher ist folgendermaßen: (Wenn ich den aber benutze, crasht mein Server aber beim Start, da eben diese "Lücke" vorhanden ist)
stock LoadObjectsForPremiumUsers()
{
new Query[255], id;
format(Query, sizeof(Query), "SELECT * FROM playerobjects2");
mysql_query(Query);
new firstid;
mysql_fetch_field("id",data);
firstid=strval(data);
new durchgang = 1;
new rows = mysql_num_rows();
for ( new j = 0; j < (rows); j++)
{
if ( durchgang == 1)
{
format(Query, sizeof(Query), "SELECT * FROM playerobjects2 WHERE id = %i",firstid);
mysql_query(Query);
mysql_store_result();
} else
{
firstid = firstid += 1;
format(Query, sizeof(Query), "SELECT * FROM playerobjects2 WHERE id = %i",firstid);
mysql_query(Query);
mysql_store_result();
}
mysql_fetch_field("id",data);
pObject[j][object_did]=strval(data);
mysql_fetch_field("besitzer",data);
pObject[j][object_besitzer]=strval(data);
mysql_fetch_field("model",data);
pObject[j][object_model]=strval(data);
mysql_fetch_field("x",data);
pObject[j][ox]=floatstr(data);
mysql_fetch_field("y",data);
pObject[j][oy]=floatstr(data);
mysql_fetch_field("z",data);
pObject[j][oz]=floatstr(data);
mysql_fetch_field("a1",data);
pObject[j][a1]=floatstr(data);
mysql_fetch_field("a2",data);
pObject[j][a2]=floatstr(data);
mysql_fetch_field("a3",data);
pObject[j][a3]=floatstr(data);
mysql_fetch_field("world",data);
pObject[j][object_world]=strval(data);
mysql_fetch_field("interior",data);
pObject[j][object_interior]=strval(data);
new string[255];
format(string,255,"Objekt %i erstellt:: X: %f Y: %f Z: %f ",pObject[j][object_did],pObject[j][ox],pObject[j][oy],pObject[j][oz]);
printf(string);
pObject[j][object_id] = CreateDynamicObject(pObject[j][object_model],pObject[j][ox],pObject[j][oy],pObject[j][oz],pObject[j][a1],pObject[j][a2],pObject[j][a3],pObject[j][object_world],pObject[j][object_interior],-1);
durchgang = durchgang + 1;
printf("Es wurde ein Objekt geladen");
}
}
Ist keine Lücke bei den "id" 's in der Tabelle vorhanden, funktioniert dieser Code wunderbar, lediglich bei einer "Lücke" unter den "id" 's crasht er mit. Kann jemand mir bitte helfen, ich tüftle schon lange an einer Lösung, aber mein Geist scheint grade nicht bereit dafür...
Vielen lieben dank schonmal im Voraus!
Mit freundlichen Grüßen
Madretsma