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: 1Mark6 - 2016. június 17. - 22:35:17

Cím: MySQL lekérdezés eredményének tárolása
Írta: 1Mark6 - 2016. június 17. - 22:35:17
Sziasztok !
Az lenne a kérdésem, hogy amikor a lekérdezés lefut, és van eredmény, hogy azt hogyan tudom változóba tárolni.
Nyilván vannak ezek a kódok :
 
cache_get_field_content/int/float //stb.

 
De én nem erre gondoltam, hanem példa :
 
SELECT Nev FROM jatekosok WHERE Admin = \'Tulajdonos\'

 
És ilyenkor lefut a kód, és nekem a Név kellene, ami a lekérdezés eredménye lenne, de nemtudom, hogy azt, hogyan szerezzem meg.
Cím: MySQL lekérdezés eredményének tárolása
Írta: GameKinger - 2016. június 18. - 08:08:10
mysql_tquery(MySQL,\"SELECT `Nev` = \'%s\' FROM jatekosok WHERE Admin = \'Tulajdonos\'\");

 
Próbáld meg ezt. (Nem biztos hogy jó, még én is kezdő vagyok a MySQL-ben.)
Cím: MySQL lekérdezés eredményének tárolása
Írta: 1Mark6 - 2016. június 18. - 09:18:12
Na és ezt, hogy tárolom változóba ? :D
Igazából amihez kéne nekem, az egy Inventory rendszer, ahonnan az ItemLista táblátból kéne kiolvasni az objectet.
 
SELECT Objekt FROM Itemlista WHERE ItemNev = \'Kenyér\'

 
És akkor callback-be megkapom az eredményt, és azt kéne valahogy eltárolni
 
mysql_tquery(SQL,query,\"ObjektLekerdezes\",\"d\",playerid);
public ObjektLekerdezes(playerid)
{
     new objekt = eredmeny;
}

 
Valahogy így képzeltem el, de nyilván van szakszerű megoldása, ez csak egy sablon, hogy így kéne kinéznie, csak a megfelelő utasítást nemtudom amivel tárolni tudom a lekérdezés eredményét.
Cím: MySQL lekérdezés eredményének tárolása
Írta: GameKinger - 2016. június 18. - 09:46:42
De most hogy akarod? Hogy beírsz egye parancsot és kiírja mennyi kenyered van?  Nem értettelek meg rendesen.
( amúgy a mysql lekérdezésnél a select és a query az ObjektLekerdezest egy sorba is megbirod igy oldani: )
mysql_tquery(MySQL,\"SELECT Objekt FROM Itemlista WHERE ItemNev = \'Kenyér\'\",\"ObjektLekerdezes\",\"d\",playerid);

 
én igy szoktam használni.
Cím: MySQL lekérdezés eredményének tárolása
Írta: 1Mark6 - 2016. június 18. - 10:00:20
Nyilván meg lehet oldani 1 sorba is de ha nemtudom konkrétan egy változó értékét, olyankor kell formázni.
És azt szeretném, hogy az Itemlistáról kiolvassa a Kenyér item, objektjét, és azt egy változóba eltárolja.
Cím: MySQL lekérdezés eredményének tárolása
Írta: GameKinger - 2016. június 18. - 10:09:20
CMD:myitems(playerid, params[]) 
{
    new query[128];
    mysql_format(mysql, query, sizeof(query), \"SELECT ItemID FROM inventory WHERE Userid=%d\", PlayerInfo[playerid][pID]);
    mysql_tquery(mysql, query, \"myitems\", \"i\", playerid);
    return 1;
}
forward myitems(playerid);
public myitems(playerid)
{
    new itemid;
    for(new i, j = cache_get_row_count(mysql); i < j; i++)
    {
        itemid                 = cache_get_row_int(i, 0, mysql);
        SendClientMessage(playerid, -1, \"ItemID: %d \", itemid);
    }
    return 1;

 
Valami hasonlóra gondoltál? (Ezt a hiv. samp fórumon találtam.)
Lényegében itt kiirja az objetkt idét, de ha innen kéred le az item id változóval akkor szerintem az amit kértél csak itt ki is ijra a chatbe.
Cím: MySQL lekérdezés eredményének tárolása
Írta: 1Mark6 - 2016. június 18. - 10:14:31
Ez segitett, köszönöm :D