Hallo liebe Community,
wie wir einzelne Zeilen in der Datenbank auslesen wissen wir. Aber wie lese ich alles aus einer Tabelle aus?
Hintergrund ist folgender,
Ich möchte zum Start des Servers alle Fraktionen die in der Datenbank gespeichert sind laden.
Dazu gehören Sachen wie Name, Leader vorhanden ja/nein, Geld etc.
Nur habe ich keine Ahnung wie ich alle Werte zum Start zuordne.
Folgendes haben wir probiert:
Code
public Fraksload()
{
new num_fields,num_rows;
new leader[MAX_PLAYER_NAME],name[128];
cache_get_data(num_rows,num_fields,dbhandle);
for(new i=0; i<num_rows; i++)
{
cache_get_field_content(0, "fraktion_name", name);
frakDBInfo[i][fraktion_name] = name;
cache_get_field_content(0, "leader_name", leader);
frakDBInfo[i][fraktion_leader] = cache_get_field_content_int(0, "leader", dbhandle);
frakDBInfo[i][fraktion_leader_Name] = leader;
frakDBInfo[i][id_f] = cache_get_field_content_int(0, "id", dbhandle);
}
return 1;
}
loadFraktion()
{
for(new i = 1;i<sizeof(frakInfo); i++)
{
new query[512];
mysql_format(dbhandle, query, sizeof(query), "SELECT * FROM fraktion WHERE id = %i",frakInfo[i][frak_id]);
mysql_pquery(dbhandle, query,"Fraksload");
}
return 1;
}
Alles anzeigen
frakDBInfo ist dabei das enum zur MySQL Datenbank und frakInfo ist ein enum in der die selben fraktionen stehen, nur andere Informationen dazu.
Vielleicht habt ihr ja eine Idee.. MySQL Log schmeißt keine Fehler, aber wenn ich zB
Code
ocmd:frak(playerid,param[])
{
new string[128];
format(string,sizeof(string),"%s",frakDBInfo[1][fraktion_name]);
SendClientMessage(playerid,COLOR_GREEN,string);
return 1;
}
ausführe schreibt er eine leere Zeile.
Lieben Gruß,
The.Boonze