nAbend,
Ich habe ein Problem bei der Speicherung meiner Häuser.
Sie werden per Array erstellt und sollen in einer Tabelle eingetragen werden, sofern sie noch nicht drin sind.
Irgendwas funktioniert nicht, denn es wird nur für 1 Haus ein Feld angelegt.
Schaut euch einfach mal die Codes an, vielleicht seht ihr ja einen Fehler.
Diese Funktion soll prüfen, ob bereits ein Feld erstellt wurde.
stock CheckHaus(id)
{
new Query[128];
format(Query,128,"SELECT * FROM `Houses` WHERE `ID` = '%d'",id); //ID ist ein Feld in der Tabelle. In die HausID zu speichern machte irgendwie Probleme..
mysql_query(Query);
mysql_store_result();
new ergb = mysql_num_rows();
return ergb;
}
stock SaveHouses()
{
new Query[128];
for(new i;i<sizeof(HausInfo);i++)
{
if(!CheckHaus(i))
{
format(Query,128,"INSERT INTO Houses (HausID, Besitzer, Hausname) VALUES ('%d', '%s', '%s')",HausInfo[i][h_ID],HausInfo[i][h_Besitzer],HausInfo[i][h_Name]); //Feld mit den Daten erstellen und füllen.
mysql_query(Query);
}
else
{
mysql_SetString("Houses", "Besitzer", HausInfo[i][h_Besitzer], "HausID", HausInfo[i][h_ID]);
mysql_SetString("Houses", "Hausname", HausInfo[i][h_Name], "HausID", HausInfo[i][h_ID]);
}
DestroyPickup(HausPickups[i]);
Delete3DTextLabel(HausLabels[i]);
}
return 1;
}
stock LoadHouses() //Sollte sich alles selbst erklären.
{
new str[128];
for(new i;i<sizeof(HausInfo);i++)
{
if(CheckHaus(i))
{
format(HausInfo[i][h_Besitzer],MAX_PLAYER_NAME,"%s",mysql_GetString2("Houses", "Besitzer", "HausID", HausInfo[i][h_ID]));
format(HausInfo[i][h_Name],32,"%s",mysql_GetString2("Houses", "Hausname", "HausID", HausInfo[i][h_ID]));
}
HausPickups[i] = CreatePickup(1239,23,HausInfo[i][h_px],HausInfo[i][h_py],HausInfo[i][h_pz],0);
format(str,sizeof(str),"%s\nHausID: %d\nBesitzer: %s\nPreis: $%d",HausInfo[i][h_Name],HausInfo[i][h_ID],HausInfo[i][h_Besitzer],HausInfo[i][h_Preis]);
HausLabels[i] = Create3DTextLabel(str,0xFFFFFFFF,HausInfo[i][h_px],HausInfo[i][h_py],HausInfo[i][h_pz],10,0,0);
}
return 1;
}