Szerző Téma: Adatbázis szám kiolvasási hiba  (Megtekintve 1094 alkalommal)

Adatbázis szám kiolvasási hiba
« Dátum: 2015. Május 02. - 15:15:42 »
0
Üdv.
Van egy /korozottek parancsom ami sql táblából kilistázza a körözötteket. A táblában adatbázis szám alapján szerepelnek a nevek. Írtam egy függvényt arra, hogy amikor listázza akkor az adatbázis számokat fordítsa át a számhoz tartozó névre, de sajnos csak a legelső névnél csinálja meg rendesen.
 
CMD:korozottek(playerid)
{
new korozottek[512];
    mysql_query(kapcs, \"SELECT * FROM korozesek\");
    new letezo = cache_num_rows();
if(letezo == 0) return Uzenet(playerid,-1,\"(( Semmi nincsen a táskádban! ))\");
for(new i = 0; i < letezo; i++)
{
    new kire =  cache_get_field_content_int(i,\"kire\");
    format(korozottek,sizeof(korozottek),\"%s\\n%s\",korozottek,GetNameFromABID(kire));
}
ShowPlayerDialog(playerid,462,DIALOG_STYLE_LIST,\"Körözöttek\",korozottek,\"Kiválaszt\",\"Mégse\");
return 1;
}

 

stock GetNameFromABID(abid)
{
new query[128], neve[30];
mysql_format(kapcs, query, 200, \"SELECT * FROM jatekosok WHERE id=\'%d\'\",abid);
mysql_query(kapcs, query);
cache_get_field_content(0,\"nev\",neve);
return neve;
}

 
Tábla:
http://prntscr.com/70muuk
http://prntscr.com/70mvj1
« Utoljára szerkesztve: 2015. Május 10. - 14:01:08 írta anGeL »

Nem elérhető divkn

  • 3259
    • Profil megtekintése
Adatbázis szám kiolvasási hiba
« Válasz #1 Dátum: 2015. Május 10. - 13:37:07 »
0
Össze is kell fűznöd a karakterláncot, nem csak formáznod.
Próbáld meg így:
 
CMD:korozottek(playerid)
{
// Nem biztos hogy elég lesz az 512 cella, mi van akkor ha több mint 14
// játékost kell kiírjia egy dialog listában?
new lista[512], neve[35];
mysql_query(kapcs, \"SELECT * FROM korozesek\");
new letezo = cache_num_rows();
if(letezo == 0) return Uzenet(playerid,-1,\"(( Semmi nincsen a táskádban! ))\");
for (new i = 0; i <= letezo; i++)
{
new kire =  cache_get_field_content_int(i,\"kire\");
format(neve,sizeof(neve),\"%s\\r\\n\",GetNameFromABID(kire));
strcat(lista,neve);
}
ShowPlayerDialog(playerid,462,DIALOG_STYLE_LIST,\"Körözöttek\",lista,\"Kiválaszt\",\"Mégse\");
return 1;
}

Adatbázis szám kiolvasási hiba
« Válasz #2 Dátum: 2015. Május 10. - 16:17:09 »
0
CMD:korozottek(playerid)
{
    mysql_query(kapcs, \"SELECT * FROM korozesek\");
    new letezo = cache_num_rows();
if(letezo == 0) return Uzenet(playerid,-1,\"(( Nincsenek körözöttek! ))\");
new korozottek[512], neve[35];
for(new i = 0; i < letezo; i++)
{
    new kire =  cache_get_field_content_int(i,\"kire\");
    format(neve,sizeof(neve),\"%s\\r\\n\",GetNameFromABID(kire));
        strcat(korozottek,neve);
}
ShowPlayerDialog(playerid,korozottekd,DIALOG_STYLE_LIST,\"Körözöttek\",korozottek,\"Kiválaszt\",\"Mégse\");
return 1;
}

 
Jelenleg így néz ki a kód, de sajnos valami nem jó, az elsőnél rendesen kiírja a nevet, a másodiknál meg már csak NULL-t ír.
« Utoljára szerkesztve: 2015. Május 10. - 16:26:23 írta anGeL »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal