Szerző Téma: MTA MySQL  (Megtekintve 1345 alkalommal)

MTA MySQL
« Dátum: 2016. December 17. - 01:44:37 »
0
Sziasztok!
 
A helyzet, a dbQuery(...) alap MySQL cuccot használnám de megakadtam, a kérdésem a következő hogy tudom lekérdezni az adott account adatainak a mezőértékeit.  Lásd:
Adatbázisban az accounts táblám struktúrája:
 
uid (int) (AI)
username (text)
password (text)
utolsoip (text)
serial (text)
 
Szóóval,, hogy pontosabb legyek azt akarom lekérdezni hogy létező felhasználó (haigen) akkor, betölti \"serial\" és \"utolsoip\"-t valami változóba mentsem el, mint samp alatt. Igen ez egy bejelentkezés!!!!444!!!
A kódom:
 
 

addEventHandler(\"loginolas\", getRootElement(),
function (felhasznalo, jelszo)

   local felhnev, banned, banned_by, banned_reason, admin, result, uid = nil
   local qh = dbQuery(sql, \"SELECT * FROM accounts WHERE username = ? AND password = ?\",felhasznalo, md5(jelszo))
   result = dbPoll ( qh, -1 )
   dbFree( qh )
        -- ide kéne valami fetch-es mysql cucc!      
end
);

 
 
« Utoljára szerkesztve: 2016. December 17. - 01:45:08 írta Brian Harris »

Nem elérhető Xenius

  • 668
    • Profil megtekintése
MTA MySQL
« Válasz #1 Dátum: 2016. December 17. - 08:08:00 »
+3
Semmiképp se használ -1 dbPoll-t, a Wiki érthetően leírja hogy ez sokkal több erőforrást fog igénybe venni, és addig befagyasztja a szervert amíg nem kap választ a mysql szervertől. Megírtam a kódot, elméletileg működésképes
 

addEventHandler(\"loginolas\", getRootElement(), function(felhasznalo, jelszo)
dbQuery(function(handler, client, jelszo)
   local result, rows, err = dbPoll(qh, 0)
   if rows > 0 then
      local data = result[1]
      
      local pw = data.password
      if pw ~= jelszo then
         outputChatBox(\"Hibás jelszó.\", client)
         return
      end
      
      outputChatBox(\"Minden oké, be lehet tölteni a dolgokat.\", client)
      outputChatBox(\"Felhasználó ID: \".. data.uid, client)
      outputChatBox(\"Serial: \".. data.serial, client)
      outputChatBox(\"Utolsó IP címed: \".. data.utolsoip, client)
   else
      outputChatBox(\"Nincs ilyen felhasználó.\", client)
   end
end, {client, jelszo}, sql, \"SELECT * FROM accounts WHERE username = ?\", felhasznalo)
end)

 
 
« Utoljára szerkesztve: 2016. December 17. - 08:10:51 írta Xenius »

MTA MySQL
« Válasz #2 Dátum: 2016. December 17. - 17:49:54 »
0
Köszönöm a segítséget és a kódot viszont további kérdéseim születtek így:
 
 
 

local result, rows, err = dbPoll(qh, 0)
   if rows > 0 then
      local data = result[1]

 
a data = result[1](gondolom azért 1 mert az első találat adatait kérdezi le) akkor megfelel a fetch-es mysql cucclival, illetve a dbPoll pedig a mysql_numssal? A másik pedig az hogy:
 
 

end, {client, jelszo}, sql, \"SELECT * FROM accounts WHERE username = ?\", felhasznalo)

 
a többit értem csak a végét nem értem mit takar az a {client, jelszo} és az sql lekérés hiszen a feletti end lezárja. de utána nincs dbQuery()
 
« Utoljára szerkesztve: 2016. December 17. - 17:50:19 írta Brian Harris »

Nem elérhető Xenius

  • 668
    • Profil megtekintése
MTA MySQL
« Válasz #3 Dátum: 2016. December 17. - 18:16:38 »
+1
Átküldi a paramétereket a callbacknek
 
https://wiki.multitheftauto.com/wiki/DbQuery

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal