hey ich habe Mir mein Fraktionscar System Auf MYSQL Umgeschrieben und seit dem braucht er Länger.
Ich versuch es zu erklären
Wen ich auf samp-server.exe Klicke braucht er Länger wie Gewöhnlich(Er Benötigt Ca 10Sekunden eh er Fertig verbunden ist)
wen ich Fraktionscarsladen(fraktionscars);Aus OnGameModInet nehme Läd er wider Normal wie er es soll.
Hier mal die Funktion
public Fraktionscarsladen(fraktionscars)
{
new fc,string[16];
while(fc<MAX_FRAK_CARS)
{
format(string, sizeof(string),"%d",fc);
fc++;
frakcar[fraktionscars][Ffarbe2] = mysql_GetInt("Fraktionscars", "farbe2", "id",string);//Farbe2 auslesen
frakcar[fraktionscars][Ffarbe1] = mysql_GetInt("Fraktionscars", "farbe1","id",string);//Farbe1 auslesen
frakcar[fraktionscars][Ffarbe1] = mysql_GetInt("Fraktionscars", "FraktionscarModell", "id",string);//Modell auslesen
frakcar[fraktionscars][fcar_x] = mysql_GetFloat("Fraktionscars", "FraktionsCar_X", "id",string);//FraktionsCar_X auslesen
frakcar[fraktionscars][fcar_y] = mysql_GetFloat("Fraktionscars", "FraktionsCar_Y", "id",string);//FraktionsCar_Y auslesen
frakcar[fraktionscars][fcar_z] = mysql_GetFloat("Fraktionscars", "FraktionsCar_Z", "id",string);//FraktionsCar_Z auslesen
frakcar[fraktionscars][Modell] = mysql_GetInt("Fraktionscars"," FraktionscarModell", "id",string);
frakcar[fraktionscars][FraktionsCar_ID] = AddStaticVehicleEx(frakcar[fraktionscars][Modell],frakcar[fraktionscars][fcar_x],frakcar[fraktionscars][fcar_y] ,frakcar[fraktionscars][fcar_z] ,frakcar[fraktionscars][fcar_f] ,frakcar[fraktionscars][Ffarbe1] ,frakcar[fraktionscars][Ffarbe2],20000);
frakcar[fraktionscars][fcar_fraktionsid] = mysql_GetInt("Fraktionscars"," FraktionsID", "id",string);
}
printf("Es wurden %d Fraktionscar Geladen",fc);
return 1;
}
Kann mir da wer sagen an was das Liegen tut?
wen ich in der Falschen Sektion bin Bitte ich darum das es verschoben wirt
lg Kifkat
Verbinden Dauert Länger
- Kevin B.
- Geschlossen
- Erledigt
-
-
Ich würde jetzt Spontan sagen, dass es daran liegt dass du für jede Variabele ein neuen Query an die db sendest.
-
Wie jetzt?
bei mein Accounts ist es doch auch nicht anders?
kannst du mir nur ein Kleines Beispiel nennen -
-
@BlackAce
was muss ich in der mysql_fetch_row(); Tun?
-
Wenn die Datenbank für jede Variable ne neue abfrage bekommt und sich bearbeiten muss dauert es um einiges länger es ist möglich alle fahrzeuge mit einem mysql query zu laden, mann muss nur mit mysql umgehen können.
edit: hier ein kleinen Code schnippsel wie es bei mir aussieht:
stock DTDH_LoadInterriors()
{
new arrCoords[9][60];
new strFromFile2[256];
format(sql,sizeof(sql),"SELECT * FROM `dtdh_Interrios`");
mysql_query(sql);
mysql_store_result();
for(new i=0; i<MAX_INTCATS;i++)
{
dtdh_Interriors[i][iSqlId] = 0;
dtdh_Interriors[i][iAk] = 0;
}
if(mysql_num_rows() != 0)
{
new idx = 0;
while(mysql_fetch_row2(strFromFile2,",") && idx < MAX_INTS)
{
Dtdh_split(strFromFile2, arrCoords, ',');
dtdh_Interriors[idx][iSqlId] = strval(arrCoords[0]);
dtdh_Interriors[idx][iPosX] = floatstr(arrCoords[1]);
dtdh_Interriors[idx][iPosY] = floatstr(arrCoords[2]);
dtdh_Interriors[idx][iPosZ] = floatstr(arrCoords[3]);
dtdh_Interriors[idx][iRotZ] = floatstr(arrCoords[4]);
format(dtdh_Interriors[idx][iName],60,"%s",arrCoords[5]);
dtdh_Interriors[idx][iInt] = strval(arrCoords[6]);
dtdh_Interriors[idx][iMieter] = strval(arrCoords[7]);
dtdh_Interriors[idx][iCat] = strval(arrCoords[8]);
dtdh_Interriors[idx][iAk] = 1;
dtdh_Interriors[idx][iVW] = VW_BEGIN;
printf("%d - %d %f %f %f %f \"%s\" %d %d %d",idx,dtdh_Interriors[idx][iSqlId],dtdh_Interriors[idx][iPosX],dtdh_Interriors[idx][iPosY],dtdh_Interriors[idx][iPosZ],dtdh_Interriors[idx][iRotZ],dtdh_Interriors[idx][iName],dtdh_Interriors[idx][iInt],dtdh_Interriors[idx][iMieter],dtdh_Interriors[idx][iCat]);
idx ++;
}
}
mysql_free_result();
}Ich weise darauf hin dass c&p wohl nicht so leicht funktionieren wird.
edit: 2pwn bbc
-
Ich mach das eig immer so:
format(query,45,"SELECT * FROM Hauser WHERE ID = '%d'",hID);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows())
{
mysql_fetch_field("Besitzer",Haus[hID][Besitzer]);
mysql_fetch_field("HausName",Haus[hID][Name]);
mysql_fetch_field("Gekauft",data);
Haus[hID][Gekauft] = bool:strval(data);
mysql_fetch_field("Abgeschlossen",data);
Haus[hID][Abgeschlossen] = bool:strval(data);
mysql_fetch_field("Mietbar",data);
Haus[hID][Mietbar] = bool:strval(data);
mysql_fetch_field("AußenPosX",data);
Haus[hID][Pos][0] = floatstr(data);
mysql_fetch_field("AußenPosY",data);
Haus[hID][Pos][1] = floatstr(data);
mysql_fetch_field("AußenPosZ",data);
Haus[hID][Pos][2] = floatstr(data);
mysql_fetch_field("InnenPosX",data);
Haus[hID][Pos][3] = floatstr(data);
mysql_fetch_field("InnenPosY",data);
Haus[hID][Pos][4] = floatstr(data);
mysql_fetch_field("InnenPosZ",data);
Haus[hID][Pos][5] = floatstr(data);
mysql_fetch_field("Interior",data);
Haus[hID][Int] = strval(data);
mysql_fetch_field("VirtualWorld",data);
Haus[hID][VirtualWorld] = strval(data);
mysql_fetch_field("Preis",data);
Haus[hID][hPreis] = strval(data);
mysql_fetch_field("Miete",data);
Haus[hID][Miete] = strval(data); -
Naja, das laden einzelner Häuser hat vor und Nachteile
-
die Von BlackAce schaut ihren wie einfacher aus aba Ich erhalte errors
pod.pwn(10321) : error 035: argument type mismatch (argument 1)
pod.pwn(10322) : error 035: argument type mismatch (argument 1)
pod.pwn(10323) : error 035: argument type mismatch (argument 1)
pod.pwn(10324) : error 035: argument type mismatch (argument 1)
pod.pwn(10325) : error 035: argument type mismatch (argument 1)
pod.pwn(10326) : error 035: argument type mismatch (argument 1)
pod.pwn(10327) : error 035: argument type mismatch (argument 1)
in den Zeilen
mysql_fetch_field("farbe1",frakcar[fraktionscars][Ffarbe1]);
mysql_fetch_field("farbe2",frakcar[fraktionscars][Ffarbe2]);
mysql_fetch_field("FraktionsID",frakcar[fraktionscars][fcar_fraktionsid]);
mysql_fetch_field("FraktionsCar_X",frakcar[fraktionscars][fcar_x]);
mysql_fetch_field("FraktionsCar_Y",frakcar[fraktionscars][fcar_y]);
mysql_fetch_field("FraktionsCar_Z",frakcar[fraktionscars][fcar_z]);
mysql_fetch_field("FraktionsCar_A",frakcar[fraktionscars][fcar_f]);
hier mal aus den Include
mysql_fetch_field(number,dest[],connectionHandle = 1);
was hab ich falsch gemacht?
Kann mir da Vielleicht wer helfen?
//Text -
Du musst statt den Feldnamen, den Feldindex angeben. Du musst nur wissen, welche Spaltennummer dein Feld hat. Ich bin mir aber nicht sicher, ob das ganze mit 0 oder 1 anfängt.
-
mysql fetch field gibts nur strings zurück, daher müssen diese wie bei emeiem code schnippsel in den jewligen variablentypen convertiert werden.
edit: @ iorawr Dies ist nicht korrekt, der command mit dem index heisst anders. -
mysql_fetch_field_row(,data,"farbe1");
frakcar[fraktionscars][Ffarbe1] = strval(data);
Hat schon nen grund warum ich das so gemacht hab -
sorry hatte es Übersehen
was muss bei Data rein? -
Data ist das wo der zurückgegebene Wert drin gespeichert wird
-
ich hab es nun so
stock Fraktionscarsladen(fraktionscars)
{
new query[128],data[128];
format(query,128,"SELECT * FROM Fraktionscars WHERE id = '%d'",fraktionscars);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows())
{
mysql_fetch_field("farbe1",data);//hier Liegt der Fehler
frakcar[fraktionscars][Ffarbe1] = strval(data);
mysql_fetch_field("farbe2",data);//hier Liegt der Fehler
frakcar[fraktionscars][Ffarbe2] = strval(data);
mysql_fetch_field("FraktionsID",data);//hier Liegt der Fehler
frakcar[fraktionscars][fcar_fraktionsid] = strval(data);
mysql_fetch_field("FraktionsCar_X",data);//hier Liegt der Fehler
frakcar[fraktionscars][fcar_x] = strval(data);
mysql_fetch_field("FraktionsCar_Y",data);//hier Liegt der Fehler
frakcar[fraktionscars][fcar_y] = strval(data);
mysql_fetch_field("FraktionsCar_Z",data);//hier Liegt der Fehler
frakcar[fraktionscars][fcar_z] = strval(data);
mysql_fetch_field("FraktionsCar_A",data);//hier Liegt der Fehler
frakcar[fraktionscars][fcar_f] = strval(data);
}
}
pod.pwn(10321) : error 035: argument type mismatch (argument 1)
pod.pwn(10323) : error 035: argument type mismatch (argument 1)
pod.pwn(10325) : error 035: argument type mismatch (argument 1)
pod.pwn(10327) : error 035: argument type mismatch (argument 1)
pod.pwn(10329) : error 035: argument type mismatch (argument 1)
pod.pwn(10331) : error 035: argument type mismatch (argument 1)
pod.pwn(10333) : error 035: argument type mismatch (argument 1)
kann mir da bitte noch mal wer helfen?
//edit Fehler WO +Text -
mysql_fetch_field( -> mysql_fetch_field_row(
-
er Lädt die Ihren wie nicht
stock Fraktionscarsladen(fraktionscars)
{
new query[128];
format(query,128,"SELECT * FROM Fraktionscars WHERE id = '%d'",fraktionscars);
mysql_query(query);
mysql_store_result();
if(mysql_num_rows())
{
new data[128];
mysql_fetch_field_row("FraktionscarModell",data);
frakcar[fraktionscars][Modell] = strval(data);
mysql_fetch_field_row("farbe1",data);
frakcar[fraktionscars][Ffarbe1] = strval(data);
mysql_fetch_field_row("farbe2",data);
frakcar[fraktionscars][Ffarbe2] = strval(data);
mysql_fetch_field_row("FraktionsID",data);
frakcar[fraktionscars][fcar_fraktionsid] = strval(data);
mysql_fetch_field_row("FraktionsCar_X",data);
frakcar[fraktionscars][fcar_x] = strval(data);
mysql_fetch_field_row("FraktionsCar_Y",data);
frakcar[fraktionscars][fcar_y] = strval(data);
mysql_fetch_field_row("FraktionsCar_Z",data);
frakcar[fraktionscars][fcar_z] = strval(data);
mysql_fetch_field_row("FraktionsCar_A",data);
frakcar[fraktionscars][fcar_f] = strval(data);
frakcar[fraktionscars][FraktionsCar_ID] = AddStaticVehicleEx(frakcar[fraktionscars][Modell],frakcar[fraktionscars][fcar_x],frakcar[fraktionscars][fcar_y] ,frakcar[fraktionscars][fcar_z] ,frakcar[fraktionscars][fcar_f] ,frakcar[fraktionscars][Ffarbe1] ,frakcar[fraktionscars][Ffarbe2],20000);
}
mysql_free_result();
}
Unter OnGameModeInit
new fraktionscarss = 0;
for(new fraktionscars;fraktionscars<MAX_FRAK_CARS;fraktionscars++) if(Fraktionscarsladen(fraktionscars)) fraktionscarss++;
printf("Es Wurden %i Fraktions Car gelade",fraktionscarss);
Kann mir bite wer helfen
//code
//code verbessert Schleife -
mysql_fetch_field_row(data,"farbe1");
frakcar[fraktionscars][Ffarbe1] = strval(data);
Finde den Unterschied -
hab ihn gefunden nun hab ich es so
mysql_fetch_field_row(data,"FraktionscarModell");
frakcar[fraktionscars][Modell] = strval(data);
mysql_fetch_field_row(data,"farbe1");
frakcar[fraktionscars][Ffarbe1] = strval(data);
mysql_fetch_field_row(data,"farbe2");
frakcar[fraktionscars][Ffarbe2] = strval(data);
mysql_fetch_field_row(data,"FraktionsID");
frakcar[fraktionscars][fcar_fraktionsid] = strval(data);
mysql_fetch_field_row(data,"FraktionsCar_X");
frakcar[fraktionscars][fcar_x] = strval(data);
mysql_fetch_field_row(data,"FraktionsCar_Y");
frakcar[fraktionscars][fcar_y] = strval(data);
mysql_fetch_field_row(data,"FraktionsCar_Z");
frakcar[fraktionscars][fcar_z] = strval(data);
mysql_fetch_field_row(data,"FraktionsCar_A");
frakcar[fraktionscars][fcar_f] = strval(data);
er lädt es aba imma noch net
er zeigt mir auch Komischer weise das an
[10:59:33] Es Wurden 50/50 Fraktions Car gelade
[10:59:33] Es wurden 0/2 Vermitungs cars geladen
[10:59:33] Es wurden 0/100 Häuser geladen
[10:59:33] Es wurden 0/5 Gans geladen
[10:59:33] Es wurden 0/30 Vermitungs cars geladen
[10:59:33] Es wurden 2/2 Firmen geladen
ich hab aba nur 16 Fraktionscar in der Datenbank eingetragen
//edit
Kannst mir da helfen bitte? -
frakcar[fraktionscars][fcar_x] = strval(data);
strval?
floatstr heißt das^^