Szerző Téma: miért csak az elsö sort irja ki??  (Megtekintve 1674 alkalommal)

miért csak az elsö sort irja ki??
« Dátum: 2011. Augusztus 20. - 01:33:29 »
0 Show voters
Sziasztok!!!
miért csak az elsõ sort íratja ki??:(
 

for(new i = 1; i <= gang_members; i++)
{
format(query2, sizeof(query2), \"SELECT * FROM `userek` WHERE `gang_id` = \'%d\' \",playerGang);
mysql_query(query2);
mysql_store_result();
    mysql_fetch_row(line);
sscanf(line, \"p<|>ds[128]s[128]dddd\",str[0],str[1]);
        format(string, sizeof(string),\"%s\",str[1]);
       SendClientMessage(playerid, COLOR_BLUE, string);
}

miért csak az elsö sort irja ki??
« Válasz #1 Dátum: 2011. Augusztus 20. - 12:37:39 »
0 Show voters
Talán hiányzik egy mysql_free_result();
De elég rossz megközelítést használsz egy adat tábla adatainak kiírására.

miért csak az elsö sort irja ki??
« Válasz #2 Dátum: 2011. Augusztus 20. - 23:41:07 »
0 Show voters
másik megoldás akkor hogy van??:(

miért csak az elsö sort irja ki??
« Válasz #3 Dátum: 2011. Augusztus 21. - 09:10:52 »
0 Show voters
Idézetet írta: kriszrap date=1313876467\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10660\" data-ipsquote-contentclass=\"forums_Topic
másik megoldás akkor hogy van??:(
 
[pawn]   mysql_query(\"SELECT * FROM `userek`\"); // Az összes sor lekérése az users adattáblából természetesen szabhatsz feltételt is,
// pl.:  WHERE `gang_id` > 0 vagy meghatározhatod hogy az adat táblán melyik oszlopok adataival térjen vissza pl.: SELECT `Name`,`Kills`,`Deaths` FROM `userek`
mysql_store_result(); // az eredmények tárolása további felhasználásra
if(mysql_num_rows() > 0) // Ellenõrzés hogy a választott adattábla tartalmaz-e adatsorokat tehát 0-nál több-e?
{
   new
      result[256]; // Ennek a méretét növelni vagy csökkenteni kell annak függvényében mennyi karaktert tartalmaz egy adatsor.
   while(mysql_fetch_row(result)) // Az eredmények soronkénti tárolása result változóban. És mivel a vissza térési értéke csökken (mysql_fetch_row) így while ciklussal addig megyünk míg az utolsó sort is ki nem írattuk.
   {
      print(result); // Eredmények további felhasználása itt most konzolban kiírás, de ide jöhet sscanf részekre osztás stb.
   }
}
mysql_free_result(); // mysql buffer ürítése, tiszta legyen minta a fehér hó hogy újból megfelelõen fel lehessen használni.
[/pawn]

miért csak az elsö sort irja ki??
« Válasz #4 Dátum: 2011. Augusztus 21. - 10:51:31 »
0 Show voters
basszus nem is tudtam hogy a sa-mpos mysqlbe van while XDXD

Dupla hozzászólás automatikusan összefûzve. ( 2011. Augusztus 21. - 12:13:39 )

igy is csak egyet mutat kettö helyet:(
el rontottam valamit??
 

if(strcmp(cmd, \"/gangstats\", true) == 0)
{
new line[500],query8[500],nick;
     format(query8, sizeof(query8), \"SELECT * FROM `users` WHERE `gang_id` = \'%d\' \", playerGang);
      mysql_query(query8);
mysql_store_result();
while(mysql_fetch_row(line))
{
sscanf(line, \"p<|>ds[50]s[50]s[50]dddddddddddddd\",0,nick,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
format(string, sizeof(string),\"Játékos név: %s\",nick);
SendClientMessage(playerid, COLOR_RED, string);
}
mysql_free_result();
return 1;
}
« Utoljára szerkesztve: 2011. Augusztus 21. - 12:13:39 írta kriszrap »

miért csak az elsö sort irja ki??
« Válasz #5 Dátum: 2011. Augusztus 21. - 16:05:08 »
0 Show voters
Minek írsz feltételt a lekérésbe?
Úgy nem tudtad volna tesztelni ahogy leírtam?
Ki kellett egészíteni felesleges dolgokkal?
Meg az egész ide írt dolog egy nagy semmi szó szerint.
 
Idézetet írta: kriszrap date=1313916691\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10660\" data-ipsquote-contentclass=\"forums_Topic
basszus nem is tudtam hogy a sa-mpos mysqlbe van while XDXD

Dupla hozzászólás automatikusan összefûzve. ( 2011. Augusztus 21. - 12:13:39 )

igy is csak egyet mutat kettö helyet:(
el rontottam valamit??
 

if(strcmp(cmd, \"/gangstats\", true) == 0)
{
new line[500],query8[500],nick;
     format(query8, sizeof(query8), \"SELECT * FROM `users` WHERE `gang_id` = \'%d\' \", playerGang); // Mi ez a playerGang? ezzel leszûkíted egy adott sorra az egészet.
      mysql_query(query8);
mysql_store_result();
while(mysql_fetch_row(line))
{
sscanf(line, \"p<|>ds[50]s[50]s[50]dddddddddddddd\",0,nick,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); // Ez mi a f*** darabol ennyit?
format(string, sizeof(string),\"Játékos név: %s\",nick); // Ok kiírjuk a játékos nevet de akkor minek van feljebb mysql függvény?
SendClientMessage(playerid, COLOR_RED, string);
}
mysql_free_result();
return 1;
}

 

Elárulnád mit is szeretnél ettõl a parancstól /gangstats? Sokat segítene, nem csak nekem.
« Utoljára szerkesztve: 2011. Augusztus 21. - 16:10:05 írta Zsolesszka »

miért csak az elsö sort irja ki??
« Válasz #6 Dátum: 2011. Augusztus 21. - 22:38:00 »
0 Show voters
Annyi hogy feltételezzük bandába vok és kapok egy banda id et.
Ha beírja gangstatot akkor a az egész táblából ki választja azokat a személyeket amelyiknek egyezik az én gangidemmel.
Ezeknek a személyeknek a nevét kiszeretném íratni.
playerGang = banda id
nick= a bandatárs neve
« Utoljára szerkesztve: 2011. Augusztus 21. - 22:49:11 írta kriszrap »

miért csak az elsö sort irja ki??
« Válasz #7 Dátum: 2011. Augusztus 21. - 23:38:10 »
0 Show voters
Valószínû hogy a playerGang változó értékét nem jól határozod meg, és nem azt a gangid adatait kéri le mint amit te elvársz.
Mivel ebben a formában ez a változó egyetlenegy gangid-t tud eltárolni, és persze gondolom nem csak egy gang lehet, ezért a hibát itt kellene keresned.

miért csak az elsö sort irja ki??
« Válasz #8 Dátum: 2011. Augusztus 22. - 18:13:08 »
0 Show voters
ezt a hibát hogy lehet orvosolni??

miért csak az elsö sort irja ki??
« Válasz #9 Dátum: 2011. Augusztus 24. - 22:57:43 »
0 Show voters
bocsánat a duplapost ért:(
segítsetek ebbe:(

miért csak az elsö sort irja ki??
« Válasz #10 Dátum: 2011. Augusztus 24. - 23:32:09 »
0 Show voters
Úgy lehetne hogy te megadod a playergang azonosító számodat a parancsba.
Van a gang meg a többi vacak parancs mikor te létrehozol egy ganget vagy jelentkezel egybe akkor kapsz egy azonosítót,
mondjuk PlayerGang[playerid] = 3;
de ezt neked kell kinézni a többi parancsból melyik lehet az.
Majd azt írod mysql lekéréséhez.
format(query8, sizeof(query8), \"SELECT * FROM `users` WHERE `gang_id` = \'%d\' \",playerGang[playerid]);

miért csak az elsö sort irja ki??
« Válasz #11 Dátum: 2011. Augusztus 25. - 00:05:05 »
0 Show voters
most ki probáltam de még se jó :( fingom sincs miért nem jó:(
van még tipped??
« Utoljára szerkesztve: 2011. Augusztus 25. - 00:09:21 írta kriszrap »

miért csak az elsö sort irja ki??
« Válasz #12 Dátum: 2011. Augusztus 25. - 08:43:51 »
0 Show voters
Mi lenne ha kiírnád ide a mysql adattábla ezen gang részét a többi gang nyavaja paranccsal együtt?
Mivel te valahogy feltételezed hogy egy banda tagja vagy, de hol a fenébe leszel egy banda tagja, melyik parancsal vagy skin választásnál leszel az vagy, milyen változóval jelölõd?
Én is csak találgatok, te meg ha csak annyit teszel hogy bemásolod ami kiírásra kerül nem jutsz elõbbre sose.
Ez az egész olyan mintha, te erre a kérdésre próbálnál válaszolni:
Van egy motorom nem indul, mi lehet a baja?  Na találd ki vazze!
Túl kevés az információ ahhoz hogy megfelelõ segítséget kapj.

miért csak az elsö sort irja ki??
« Válasz #13 Dátum: 2011. Augusztus 25. - 23:18:51 »
0 Show voters
itt vannak a kódok:)
hát sokáig fog tartani amíg át böngészed:)
 

if(strcmp(cmd, \"/gang\", true) == 0) {
    new gangcmd;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
   SendClientMessage(playerid, COLOR_WHITE, \"USAGE: /gang [create/join/invite/quit] [name/number]\");
   return 1;
}
giveplayerid = strval(tmp);
if(strcmp(tmp, \"create\", true)==0)
    gangcmd = 1;
else if(strcmp(tmp, \"invite\", true)==0)
    gangcmd = 2;
else if(strcmp(tmp, \"join\", true)==0)
    gangcmd = 3;
else if(strcmp(tmp, \"quit\", true)==0)
    gangcmd = 4;
tmp = strtok(cmdtext, idx);
if(gangcmd < 3 && !strlen(tmp)) {
    if(gangcmd==0)
      SendClientMessage(playerid, COLOR_WHITE, \"USAGE: /gang [create/join/invite/quit] [name/number]\");
   else if(gangcmd==1)
      SendClientMessage(playerid, COLOR_WHITE, \"USAGE: /gang [create] [name]\");
   else if(gangcmd==2)
      SendClientMessage(playerid, COLOR_WHITE, \"USAGE: /gang [invite] [playerID]\");
   return 1;
}
//Create Gang//
if(gangcmd==1) {
    if(playerGang[playerid]>0) {
      SendClientMessage(playerid, COLOR_RED, \"Már bandába Vagy!\");
      return 1;
     }else{
                    new playername3[MAX_PLAYER_NAME];
                    new line[500];
         GetPlayerName(playerid, playername3, sizeof(playername3));
          new query[500],query5[500],query2[500];
          mysql_real_escape_string(tmp,tmp);
         format(query, sizeof(query),\"INSERT INTO gangs (id,ganga_name,gang_fonok,gang_haz,gang_szin,gang_bank,gang_members)VALUES(0,\'%s\',\'%s\',\'0\',\'%d\',\'0\',\'1\')\",tmp,playername3,GetPlayerColor(playerid));
         mysql_query(query);
         format(query5, sizeof(query5), \"SELECT * FROM `gangs` WHERE `gang_fonok` = \'%s\' \",playername3);
         mysql_query(query5);
         mysql_store_result();
         mysql_fetch_row(line);
          sscanf(line, \"p<|>dsp<|>[128]\",playerGang,gangname);
         format(string, sizeof(string),\"Te Bandát Csináltál \'%s\' (id: %d)\",gangname,playerGang[playerid]);
         SendClientMessage(playerid, COLOR_GREEN, string);
         format(query2, sizeof(query2), \"UPDATE  `userek` SET gang_id=\'%d\' WHERE `jatekosnev` = \'%s\'\",playerGang[playerid],playername3);
         mysql_query(query2);
         mysql_free_result();
         return 1;
}
//Join Gang//
} else if (gangcmd==3) {
    if(playerGang[playerid]>80) {
      SendClientMessage(playerid, COLOR_RED, \"Már bandába Vagy!\");
      return 1;
    }
       if(gangInvite[playerid]==0) {
      SendClientMessage(playerid, COLOR_RED, \"Nincs Banda Megívód!!!\");
      return 1;
   }
           if(gangInvite[playerid] != 0)
    {
    if(IsPlayerConnected(giveplayerid)) {
            new query2[500],line[500],query4[500],gang_members;
            format(query2, sizeof(query2), \"SELECT * FROM `gangs` WHERE `id` = \'%d\' \", gangInvite);
            mysql_query(query2);
      mysql_store_result();
            mysql_fetch_row(line);
      sscanf(line, \"p<|>ds[128]s[128]dddd\",0,gangname,0,0,0,0,gang_members);
      format(string, sizeof(string),\"Te Beléptél A Bandába \'%s\' (id: %d)\", gangname, gangInvite);
      SendClientMessage(playerid, COLOR_GREEN, string);
      new playername5[MAX_PLAYER_NAME];
      GetPlayerName(giveplayerid, playername5, sizeof(playername5));
      new i;
              for (i = 0; i < MAX_PLAYERS; i++)
         {
           if(gangInvite == playerGang)
            {
                        format(string, sizeof(string),\" %s Belépet a bandába!!!\",playername5);
            SendClientMessage(i, COLOR_GREEN, string);
            }
            }
      new playername3[MAX_PLAYER_NAME];
      GetPlayerName(playerid, playername3, sizeof(playername3));
      format(query2, sizeof(query2), \"UPDATE  `userek` SET gang_id=\'%d\' WHERE `jatekosnev` = \'%s\'\",gangInvite,playername3);
      mysql_query(query2);
                gang_members++;
      format(query4, sizeof(query4), \"UPDATE  `gangs` SET gang_members=\'%d\' WHERE `id` = \'%d\'\",gang_members,gangInvite);
      mysql_query(query4);
      mysql_free_result();
      gangInvite[playerid] =0;
      return 1;
   }
   }
   return 1;
//Invite to Gang//
} else if (gangcmd==2) {
       giveplayerid = strval(tmp);
   if(playerGang[playerid]==0) {
      SendClientMessage(playerid, COLOR_RED, \"Nem vagy Bandába!\");
      return 1;
   }
//         if(gangMembers[playerGang[playerid]][0]!=playerid) {
//            SendClientMessage(playerid, COLOR_RED, \"You need to be the gang leader to send an invite.\");
//            return 1;
//         }
            new playername3[MAX_PLAYER_NAME];
              new query2[500];
   GetPlayerName(playerid, playername3, sizeof(playername3));
            format(query2, sizeof(query2), \"SELECT * FROM `gangs` WHERE `gang_fonok` = \'%s\' \",playername3);
            mysql_query(query2);
   mysql_store_result();
   if(mysql_num_rows() == 1)
      {
   if(IsPlayerConnected(giveplayerid)) {
      GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
      GetPlayerName(playerid, sendername, sizeof(sendername));
      new query[500],line[500];
          format(query, sizeof(query), \"SELECT * FROM `gangs` WHERE `gang_fonok` = \'%s\' \",giveplayer);
      mysql_query(query);
      mysql_store_result();
            mysql_fetch_row(line);
      sscanf(line, \"p<|>ds[128]p<|>\",0,gangNames[playerGang[playerid]]);
      format(string, sizeof(string),\"Banda Meghívót Kültél %s-nek %s.\", giveplayer);
      SendClientMessage(playerid, COLOR_GREEN, string);
      format(string, sizeof(string),\"Te Kaptál Banda Meghívót %s tól \'Banda név \'%s\' (id: %d) /gang join nal aktiválhatod!! \", sendername, gangNames[playerGang[playerid]],playerGang[playerid]);
      SendClientMessage(giveplayerid, COLOR_GREEN, string);
      gangInvite[giveplayerid]=playerGang[playerid];
                mysql_free_result();
   } else
      SendClientMessage(playerid, COLOR_RED, \"Nincs Ilyen Játékosid!\");
   }else{
         SendClientMessage(playerid, COLOR_RED, \"Nem vagy banda fõnök!!!\");
   }
//Leave Gang//
} else if (gangcmd==4) {
    if(playerGang[playerid]==0) {
      SendClientMessage(playerid, COLOR_RED, \"Nem vagy Bandába!\");
      return 1;
   }
   new query10[500],line[500];
   new playername3[MAX_PLAYER_NAME];
   GetPlayerName(playerid, playername3, sizeof(playername3));
           format(query10, sizeof(query10), \"SELECT * FROM `gangs` WHERE `gang_fonok` = \'%s\' \",playername3);//ha csak a bada fönök statját mutaja
   mysql_query(query10);
   mysql_store_result();
   mysql_fetch_row(line);
   sscanf(line, \"p<|>ds[128]p<|>\",playerGang[playerid],gangname);//<-- ezért ha nem fönök akkor0 értékeket kap:(
            if(mysql_num_rows()== 1)
      {
                new guery2[500],query3[500];
         format(guery2, sizeof(guery2), \"UPDATE  `userek` SET gang_id=\'%d\' WHERE `jatekosnev` = \'%s\'\",0,playername3);
       mysql_query(guery2);
       format(query3, sizeof(query3), \"DELETE FROM gangs WHERE gang_fonok= \'%s\' \",playername3);
       mysql_query(query3);
       format(string, sizeof(string),\"Kiléptél a bandából: \'%s\' (id: %d)\",gangname,playerGang[playerid]);
       SendClientMessage(playerid, COLOR_RED, string);
       playerGang[playerid]=0;
       mysql_free_result();
      }else{
         new guery4[500],guery7[500],guery5[500],gang_members;
               format(guery7, sizeof(guery7), \"SELECT * FROM `gangs` WHERE `id` = \'%d\' \",playerGang[playerid]);
      mysql_query(guery7);
      mysql_store_result();
      mysql_fetch_row(line);
               sscanf(line, \"p<|>ds[128]s[128]dddd\",0,gangname,0,0,0,0,gang_members);
               
         format(guery4, sizeof(guery4), \"UPDATE  `userek` SET gang_id=\'%d\' WHERE `jatekosnev` = \'%s\'\",0,playername3);
       mysql_query(guery4);
       gang_members--;
             format(guery5, sizeof(guery5), \"UPDATE  `gangs` SET gang_members=\'%d\' WHERE `id` = \'%d\'\",gang_members,playerGang);
      mysql_query(guery5);
       format(string, sizeof(string),\"Kiléptél a bandából: \'%s\' (id: %d)\",gangname,playerGang);
       SendClientMessage(playerid, COLOR_RED, string);
       playerGang[playerid]=0;
       mysql_free_result();
               }
}
  return 1;
}
//------------------- /gangs
if(strcmp(cmd, \"/gangstats\", true) == 0)
{
new line[500],query8[500],nick;
     format(query8, sizeof(query8), \"SELECT * FROM `users` WHERE `gang_id` = \'%d\' \",playerGang[playerid]);
      mysql_query(query8);
mysql_store_result();
while(mysql_fetch_row(line))
{
sscanf(line, \"p<|>ds[50]p<|>\",0,nick);
format(string, sizeof(string),\"Játékos név: %s\",nick);
SendClientMessage(playerid, COLOR_RED, string);
}
mysql_free_result();
return 1;
}

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
miért csak az elsö sort irja ki??
« Válasz #14 Dátum: 2011. Augusztus 25. - 23:36:08 »
0 Show voters
Ezzel én a helyedben nem nagyon foglalkoznék..  ;)
Ismerõs rendszer, én is átakartam írni sql-re, de csak felidegesített. Meglátszik hogy \"ódivatú\".  :D
Szerintem szedj le 1 netrõl egy másikat, ami megfelel a kornak. Én is ezt tettem és átírtam az egészet sql-re.
Menti a bandákat, tagjait, bankban lévõ pénzüket stb..

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal