GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: tudvari - 2014. Május 17. - 10:36:31

Cím: MySQL - top 10 sor kiíratása
Írta: tudvari - 2014. Május 17. - 10:36:31
Sziasztok!
Az alábbit szeretném megcsinálni,csak nem értek annyira a mysql-hez,és nem szeretnék sok restartot csinálni azért,mert elírtam valamit.
-A táblából kiválasztani azokat a sorokat,ahol a Mezõ1 értéke X
-Ezeket az értékeket a Mezõ2 szerint csökkenõ sorrendbe rakni.
-És az elsõ tíz sorból a Mezõ3 értékét kiíratni.
Szóval kell egy query ami kiválasztja ezet a tízet,és majd egy ciklussal ezeken végigmennék.Nekem csak a mysql-es rész kell.
Elõre is köszönöm.
Cím: MySQL - top 10 sor kiíratása
Írta: Szilard - 2014. Május 17. - 11:03:14
SELECT * FROM tabla WHERE mezo1=X ORDER BY mezo2 DESC LIMIT 0, 10
Cím: MySQL - top 10 sor kiíratása
Írta: tudvari - 2014. Május 17. - 11:07:40
de ezt miben tudom eltárolni?
Cím: MySQL - top 10 sor kiíratása
Írta: KovaNovik - 2014. Május 17. - 19:14:25
Ez kiválasztja az elsõ tíz sort, a megadott kritérium szerijt sorbarendezve. Azaz, le kell kérned a KIJELZETT sor számot. Tehát asszem R6-ban sscanfal darabolni. Csak R38-ban tudom, hogy
 

new VersenyzokPenze[10];
for(new a = 0; a < 10; a++) {
VersenyzokPenze[a] = cache_get_field_int(a, \"Penz\");

 
Vagy valahogy így.
Cím: MySQL - top 10 sor kiíratása
Írta: tudvari - 2014. Május 17. - 21:56:25
Csak mi szerint van R6-ban elválasztva egy új sor?A mezõk \"|\" jellel,de mivel van elválasztva a sor?
Cím: MySQL - top 10 sor kiíratása
Írta: KovaNovik - 2014. Május 17. - 22:35:18
Ahogy a wikit olvasgattam ( http://wiki.sa-mp.com/wiki/MySQL ), leginkább a mysql_retrieve_row lenne jó arra, hogy a következõ sorra ugorj, majd ott store_result, sscanf, stb.
Bár az én angoltudásommal... :D
Jaja, nem. Amikor használod a mysql_fetch_rowt, akkor automatikusan a következõ sorra ugrik.
Így ni:
 
mysql_query(\"SELECT * FROM tabla WHERE mezo1=X ORDER BY mezo2 DESC LIMIT 0, 10\");
mysql_store_result();
new eredm[128];
mysql_fetch_row(eredm); //elsõ sor lekérése
sscanf(eredm, \"p<|>sd\", nev, penz); //darabolása
//Az e felett lévõ két sort ismételgeted.
mysql_free_result();
Cím: MySQL - top 10 sor kiíratása
Írta: Flash - 2014. Május 24. - 15:02:10
[mod]Témát zártam! Ha mégsem oldódott meg a problémád, kérlek jelezd PÜ-be, és megnyitom a témát![/mod]
Cím: MySQL - top 10 sor kiíratása
Írta: tudvari - 2014. Május 17. - 10:36:31
Sziasztok!
Az alábbit szeretném megcsinálni,csak nem értek annyira a mysql-hez,és nem szeretnék sok restartot csinálni azért,mert elírtam valamit.
-A táblából kiválasztani azokat a sorokat,ahol a Mezõ1 értéke X
-Ezeket az értékeket a Mezõ2 szerint csökkenõ sorrendbe rakni.
-És az elsõ tíz sorból a Mezõ3 értékét kiíratni.
Szóval kell egy query ami kiválasztja ezet a tízet,és majd egy ciklussal ezeken végigmennék.Nekem csak a mysql-es rész kell.
Elõre is köszönöm.
Cím: MySQL - top 10 sor kiíratása
Írta: Szilard - 2014. Május 17. - 11:03:14
SELECT * FROM tabla WHERE mezo1=X ORDER BY mezo2 DESC LIMIT 0, 10
Cím: MySQL - top 10 sor kiíratása
Írta: tudvari - 2014. Május 17. - 11:07:40
de ezt miben tudom eltárolni?
Cím: MySQL - top 10 sor kiíratása
Írta: KovaNovik - 2014. Május 17. - 19:14:25
Ez kiválasztja az elsõ tíz sort, a megadott kritérium szerijt sorbarendezve. Azaz, le kell kérned a KIJELZETT sor számot. Tehát asszem R6-ban sscanfal darabolni. Csak R38-ban tudom, hogy
 

new VersenyzokPenze[10];
for(new a = 0; a < 10; a++) {
VersenyzokPenze[a] = cache_get_field_int(a, \"Penz\");

 
Vagy valahogy így.
Cím: MySQL - top 10 sor kiíratása
Írta: tudvari - 2014. Május 17. - 21:56:25
Csak mi szerint van R6-ban elválasztva egy új sor?A mezõk \"|\" jellel,de mivel van elválasztva a sor?
Cím: MySQL - top 10 sor kiíratása
Írta: KovaNovik - 2014. Május 17. - 22:35:18
Ahogy a wikit olvasgattam ( http://wiki.sa-mp.com/wiki/MySQL ), leginkább a mysql_retrieve_row lenne jó arra, hogy a következõ sorra ugorj, majd ott store_result, sscanf, stb.
Bár az én angoltudásommal... :D
Jaja, nem. Amikor használod a mysql_fetch_rowt, akkor automatikusan a következõ sorra ugrik.
Így ni:
 
mysql_query(\"SELECT * FROM tabla WHERE mezo1=X ORDER BY mezo2 DESC LIMIT 0, 10\");
mysql_store_result();
new eredm[128];
mysql_fetch_row(eredm); //elsõ sor lekérése
sscanf(eredm, \"p<|>sd\", nev, penz); //darabolása
//Az e felett lévõ két sort ismételgeted.
mysql_free_result();
Cím: MySQL - top 10 sor kiíratása
Írta: Flash - 2014. Május 24. - 15:02:10
[mod]Témát zártam! Ha mégsem oldódott meg a problémád, kérlek jelezd PÜ-be, és megnyitom a témát![/mod]