Bevezetés:Ez a téma hasonló \"PVar és sima változók\" címû \"tutorial\"-omhoz , ahol a PVar-okat és az egyszerû változókat hasonlítottam össze. Az a téma azt mutatta be, melyik gyorsabb az adatok beolvasásában.
Mindegy, most három MySQL plugin-t fogunk összehasonlítani.
1: SA:MP MySQL Plugin 1.2.1 (StrickenKid) -
http://forum.sa-mp.com/showthread.php?t=1229832: MySQL Plugin R4 (G-StyleZzZ) -
http://forum.sa-mp.com/showthread.php?t=565643: SAMP-MySQL v0.15 (ADreNaLiNe-DJ) -
http://forum.sa-mp.com/showthread.php?t=7106Kis statisztika:SA:MP MySQL Plugin 1.2.1 (StrickenKid)
Funkciók:





Sebesség: Majd kiterítjük
MySQL Plugin R4 (G-StyleZzZ)
Funkciók:




Sebesség: Majd kiterítjük
SAMP-MySQL v0.15 (ADreNaLiNe-DJ)
MySQL Plugin R4 (G-StyleZzZ)
Funkciók:


Sebesség: Majd kiterítjük
Lehet hülye vagyok, mert a funkciókat osztályozom! ;)
Kísérleti kód:A MySQL Plugin R4 (G-StyleZzZ) tesztjéhez a következõ kódot használjuk:
new
Data[25],
Float:LoadedP[3];
mysql_query(\"SELECT X, Y, Z FROM Armour\");
mysql_store_result();
while(mysql_fetch_row_format(Data, \"|\")) {
sscanf(Data, \"p<|>fff\", LoadedP[0], LoadedP[1], LoadedP[2]);
CreatePickup(1242, 2, LoadedP[0], LoadedP[1], LoadedP[2], -1);
}
mysql_free_result();
A SA:MP MySQL Plugin 1.2.1 (StrickenKid) tesztjéhez a következõ kódot használjuk:
new
Data[25],
Float:LoadedP[3];
mysql_query(\"SELECT X, Y, Z FROM Armour\");
mysql_store_result();
while(mysql_fetch_row(Data, \"|\")) {
sscanf(Data, \"p<|>fff\", LoadedP[0], LoadedP[1], LoadedP[2]);
CreatePickup(1242, 2, LoadedP[0], LoadedP[1], LoadedP[2], -1);
}
mysql_free_result();
A SAMP-MySQL v0.15 (ADreNaLiNe-DJ) tesztjéhez a következõ kódot használjuk:
new
Data[25],
Float:LoadedP[3];
samp_mysql_query(\"SELECT X, Y, Z FROM Armour\");
samp_mysql_store_result();
while(samp_mysql_fetch_row(Data)) {
sscanf(Data, \"p<|>fff\", LoadedP[0], LoadedP[1], LoadedP[2]);
CreatePickup(1242, 2, LoadedP[0], LoadedP[1], LoadedP[2], -1);
}
samp_mysql_free_result();
Kísérlet eredménye: G-StyleZzZ plugin-jának ideje: 19 ms[/quote]
new
Data[25],
Float:LoadedP[3];
new TickStart;
new TickEnd;
TickStart = GetTickCount();
mysql_query(\"SELECT X, Y, Z FROM Armour\");
mysql_store_result();
while(mysql_fetch_row_format(Data, \"|\")) {
sscanf(Data, \"p<|>fff\", LoadedP[0], LoadedP[1], LoadedP[2]);
CreatePickup(1242, 2, LoadedP[0], LoadedP[1], LoadedP[2], -1);
}
mysql_free_result();
TickEnd = GetTickCount();
printf(\"G-StyleZzZ plugin-jának ideje: %i ms\", TickEnd - TickStart);
Strickenkid plugin-jának ideje: 10 ms[/quote]
new
Data[25],
Float:LoadedP[3];
new TickStart;
new TickEnd;
TickStart = GetTickCount();
mysql_query(\"SELECT X, Y, Z FROM Armour\");
mysql_store_result();
while(mysql_fetch_row(Data, \"|\")) {
sscanf(Data, \"p<|>fff\", LoadedP[0], LoadedP[1], LoadedP[2]);
CreatePickup(1242, 2, LoadedP[0], LoadedP[1], LoadedP[2], -1);
}
mysql_free_result();
TickEnd = GetTickCount();
printf(\"Strickenkid plugin-jának ideje: %i ms\", TickEnd - TickStart);
ADreNaLiNe-DJ plugin-jának ideje: .... ms[/quote]
new
Data[25],
Float:LoadedP[3];
new TickStart;
new TickEnd;
TickStart = GetTickCount();
samp_mysql_query(\"SELECT X, Y, Z FROM Armour\");
samp_mysql_store_result();
while(samp_mysql_fetch_row(Data)) {
sscanf(Data, \"p<|>fff\", LoadedP[0], LoadedP[1], LoadedP[2]);
CreatePickup(1242, 2, LoadedP[0], LoadedP[1], LoadedP[2], -1);
}
samp_mysql_free_result();
TickEnd = GetTickCount();
printf(\"ADreNaLiNe-DJ plugin-jának ideje:\", TickEnd - TickStart);
Következtetés:
Nem mennék ebbe bele, ez csak egy sebességellenõrzés volt az adatok beolvasását tekintve. A ADreNaLiNe-DJ plugin-jánál lévõ ....-rõl annyit, hogy crash-elt, nem volt képes annyi adat beolvasására ;D
Strickenkid plugin-jának ideje: 10 ms
G-StyleZzZ plugin-jának ideje: 19 ms
ADreNaLiNe-DJ plugin-jának ideje: <Crash-elt>
[/quote]
Írta: Carlton (2010. július 21.) (http://forum.sa-mp.com/showthread.php?t=161726)
Fordította: Y2K (2010. augusztus 2.)
Nekem G-StyleZzZé jön be a legjobban,azt használom és szerintem az a legstabilabb is.
(Kölönben 2X nyitottad meg a témát. :) Látom belejöttél a leírásosdiba :))
Sebesség: Majd kiterítjük[/quote]
Ki tudod teríteni a sebességet?
Beavatsz, h hogy kell? xD
és ha csak egy mezöt szeretnék le kérdezni nem ilyen tömböset azt hogy kell??:D ha értitek mit akakrok??:D
és ha csak egy mezöt szeretnék le kérdezni nem ilyen tömböset azt hogy kell??:D ha értitek mit akakrok??:D
Tehát egy bizonyos sor egy bizonyos cellájának értékére vagy kíváncsi?
pontosan:)
hát php és sql be igy néz ki:
$valszat = mysql(\"SELECT * FROM samp WHERE id=\'$id\' \")
$row =mysql_fetch_array($valszat);
print $row[\'akármi\'];
Hát irtam egy példát hogy kb mire gondolok:D
Valaki tud segíteni??:(
stock fuggveny(playerid)
{
new line[200],str[24];
mysql_query(\"SELECT valami FROM `tabla`\");
mysql_store_result();
mysql_fetch_row(line);
mysql_free_result();
sscanf(line, \"p<|>s[24]\",str);
return str;
}
Ebbõl meg tudod oldani nem?
meg proszálom:D
[pawn]stock fuggveny(playerid)
{
new line[200],str[24];
mysql_query(\"SELECT valami FROM `tabla`\");
mysql_store_result();
mysql_fetch_row(line);
mysql_free_result();
sscanf(line, \"p<|>s[24]\",str);
return str;
}
[/pawn]
Ebbõl meg tudod oldani nem?
Miért kell az sscanf? Csak kérdezem mert érdekelne.
ez igy nem jo?:
[pawn]stock fuggveny(playerid)
{
new line[200],str[24];
mysql_query(\"SELECT valami FROM `tabla`\");
mysql_store_result();
mysql_fetch_row(line);
mysql_free_result();
return line;
}
[/pawn]
[pawn]stock fuggveny(playerid)
{
new line[200],str[24];
mysql_query(\"SELECT valami FROM `tabla`\");
mysql_store_result();
mysql_fetch_row(line);
mysql_free_result();
sscanf(line, \"p<|>s[24]\",str);
return str;
}
[/pawn]
Ebbõl meg tudod oldani nem?
Miért kell az sscanf? Csak kérdezem mert érdekelne.
ez igy nem jo?:
[pawn]stock fuggveny(playerid)
{
new line[200],str[24];
mysql_query(\"SELECT valami FROM `tabla`\");
mysql_store_result();
mysql_fetch_row(line);
mysql_free_result();
return line;
}
[/pawn]
[/quote]
Jó így is elvileg,én szokásból hagytam bent.
és nem szeretném egyesével ki választgatni \"select *\" és ugy ki iratás azt hogyan mert 22 tömböm van vagy mezöm:D kicsit hosszu lenne :D
és nem szeretném egyesével ki választgatni \"select *\" és ugy ki iratás azt hogyan mert 22 tömböm van vagy mezöm:D kicsit hosszu lenne :D
û
Akk pont hogy a * kéne mert az mindent kiválaszt
igen ha ki választom és valahogy meg kéne szabnom hogy meiket akarom ki iratni:D
hogy??:)
igen ha ki választom és valahogy meg kéne szabnom hogy meiket akarom ki iratni:D
hogy??:)
sscanfal szétdarabolod a karakterláncot a | jelek mentén.
Ez miért nem müködik:(
format(query, sizeof(query), \"SELECT * FROM `userek` WHERE `jatekosnev` = \'%s\'\",playername);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(line);
sscanf(line, \"p<|>d[24]\",\"p<|>d[24]\",str,str2);
Kriszrap ha leírnád hogy te épp milyen adatot akarsz lekérdezni akkor könnyebb lenne példát írni rá, és te is könnyebben megértenéd.
Egyébként nagyon egyszerû mert SELECT utasítás után nem * ot írsz hanem azokat a kifejezéseket amelyikre neked szükséged van.
mysql_query(\"SELECT `Name`, `Kills`, `Deaths` FROM `users`\");
azt vettem észre hogy a tömbök közöt meg hadja ezt | miért??
Mert a mySql azzal választja szét az adatokat,a sscanf elé rakj be egy ilyet: p<|>
Szal sscanf(sql,\"<p|>....
sajna nem jó!!:(
elmondom mit akarok van egy táblázat id nél 7 es van névnél kriszrap
és ezt ki karom iratni hogyan segítsetek:(
sajna nem jó!!:(
elmondom mit akarok van egy táblázat id nél 7 es van névnél kriszrap
és ezt ki karom iratni hogyan segítsetek:(
Másold be ahogy eddig próbáltad és akkor arra kapsz választ mit rontottál el, úgy gyorsabban megérted mint azt hogy most ideírok egy rakás kódot.
new Float:str[256];
format(query, sizeof(query), \"SELECT * FROM `userek` WHERE `jatekosnev` = \'%s\'\",playername);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(line);
sscanf(line, \"<|>s\",str[0],str[1]);
hát igy néz ki a kod
new Float:str[256];
format(query, sizeof(query), \"SELECT * FROM `userek` WHERE `jatekosnev` = \'%s\'\",playername);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(line);
sscanf(line, \"<|>s\",str[0],str[1]);
hát igy néz ki a kod
???
new str[2][128];
format(query, sizeof(query), \"SELECT * FROM `userek` WHERE `jatekosnev` = \'%s\'\",playername);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(line);
mysql_free_result();
sscanf(line, \"p<|>s[50]s[50]\",str[0],str[1]);
Nem tudom milyen adatokat tárolsz,ez az elsõ 2 cella értékét kéri la a sornak,ha több van,valószínüleg bebugol,meg gondolom a deklarációkat meg a lekéréseket megcsináltad elõrébb. (playername stb)
köszönöm:)