Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] LUA_SQL (za pomocą php)


Badar

Rekomendowane odpowiedzi

Opublikowano

Witajcie .

 

Tylu "questologów" to znało (zapewne nie jeden "obrzuci mnie błotem", ale co mi tam ;p .

 

Kiedyś na tym zacnym forum wspomniano o szlachetnej funkcji "os.execute" -- też uważam, iż jest piękna

^^, ale do rzeczy.

 

Dlaczego by nie użyć naszego kochanego języka php do wysyłania / pozyskiwania wartości z baz mysql ?

 

O to mój sposób :

 

questlib.lua :

 

 




function query(x)
local sql = (x)
os.execute("php /home/www/badar.php "..sql.."")
end

quest_funkcjons :

 

query

 

skrypt :

 

 



<?php
Include("config.php"); -- można użyć "mysql_connect()"
$zap = $argv['1'];
mysql_query("$zap");
?>

Sposób użycia :

 

W queście wpisujemy piękną funkcję : query(treść)

 

Przykład :

 

x = pc.get_name()
y = query("SELECT 'account_id' FROM player.player WHERE 'name'='"..x.."';")

Wiem, mega proste

^^.

 

PS : Użyłem zmiennych globalnych, dlatego nie ma przedrostka "local".

 

Dlaczego śmiem twierdzić, iż to działa ?

 

Patrząc prawami logiki funkcja os.execute wykona skrypt php, który wykona nasze zapytanie i zwróci / wgra wartość a wynik przekaże pod zmienną, która deklarowała funkcję "query"

:).

 

Pozdrawiam Badar

^^.

 

Tutorial autorstwa : Badar (Maciej T.) - Zakaz kopiowania, rozpowszechniania treści etc zgodnie z ustawą o prawach autorskich .

Opublikowano

os.execute(mysql update...)

pamiętasz ? :D

 

Tak nie do końca :D.

 

A powinienem ? :D

 

Aaaaa no jo !

 

 

Oj tam Oj tam :D

Opublikowano

hyhy, czyli dzięki temu mogę np zmienić nick gracza prosto z bazy ? Lub sprawdzić czy gracz o wybranym nicku istnieje ?

 

Dzięki temu możesz bawić się bazą mysql :P .

 

Np dodać se kolumne "moby" i zapisywać tam ilość zabitych moobów

Opublikowano

Fail. os.execute w tym przypadku nie zwraca wyniku zapytań. Z tego co wiem, zwraca coś typu 0-błąd, 1- wykonane itd. Poza tym, luasql to luasql, a os.execute to os.execute.


 

Opublikowano

Fail. os.execute w tym przypadku nie zwraca wyniku zapytań, poza tym zjebałeś funkcję w questlibie więc nawet, gdyby to miało sens, to działanie byłoby zerowe. Poza tym, luasql to luasql, a os.execute to os.execute.

 

No ale os.execute w każdym języku jednak musi wykonać dany skrypt, a on wykonuje zapytanie ^.^ .

 

W przypadku LUA_SQL można by np :

 

 

function mysql_connect(host, port, baza, user, pass)
require ("mysql")
mysql.connect(host, port, baza, user, pass)
end

 

 

@Edit - poprawiłem questlib.lua

 

A tu ciekawy link ^^ :

http://lua-users.org/wiki/OsLibraryTutorial

Opublikowano

os.execute wykonuje plik php, a nie bezpośrednio skrypt, więc nie zwraca żadnego wyniku zapytania. Na logikę, dlaczego miałby własnie wynik ZAPYTANIA zwracać? Niemądre i nieprawdziwe.

 

//edit

co na tej stronie jest takiego ciekawego? podstawowe funkcje shell-lua.

 

//nawet z 'poprawionym' questlibem to działać nie będzie. zrozum..


 

Opublikowano

os.execute wykonuje plik php, a nie bezpośrednio skrypt, więc nie zwraca żadnego wyniku zapytania. Na logikę, dlaczego miałby własnie wynik ZAPYTANIA zwracać? Niemądre i nieprawdziwe.

 

//edit

co na tej stronie jest takiego ciekawego? podstawowe funkcje shell-lua.

 

//nawet z 'poprawionym' questlibem to działać nie będzie. zrozum..

 

 

^^.

 

A jeśli dam np os.execute pod zmienną i dam return "..zmienna.." ? :P

Opublikowano

to skrypt zwróci to do nikąd. po prostu słuchaj. wytłumaczę ci to łopatologicznie.

załóżmy, że skrypt php to funkcja i os.execute to funkcja. No więc, co prawda. robiąc return z php zwróciłbyś wartość, ale chwila... w queście wykonujesz funkcję os.execute, która zwraca swoje wartości, czyli tak jak wspomniałem wyżej, 0 w przypadku błędu wykonania skryptu podanego w argumencie, 1 w przypadku poprawnego itd.


 

Opublikowano

ox.execute wykonuje zapytania : update , insert , delete , drop wszystkie takie ktore nie zwracaja zadnych wynikow zwrotnych typu id czy cos LUA_SQL to calkiem co innego

11-37.59.93.25.png
Opublikowano

@Up

Po pierwsze, os.execute nie wykonuje zapytań, a skrypt php. Po drugie, oczywiście, uruchomi on skrypt, w którym jest np. zapytanie z selectem, wykona go, zwróci wynik, ale nie do questa.. Można powiedzieć, że ta funkcja działa tak jakby 'w jedną stronę'.


 

Opublikowano

Tym poradnikiem stworzyłeś coś takiego:

 

local wynik = os.execute("mysql -u root playerdata --execute='SELECT `account_id` FROM player.player WHERE `id`='"..pc.get_player_id().."';")
say(wynik)

 

Output:

1

 

 

Dla zainteresowanych, prawdziwe LUA_SQL = http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/1562959-release-mysql-schnittstelle-f-r-quests.html

Nie ma co, popis na forum jest.

btw, dalej twierdzicie, ze os.execute nie wykonuje zapytań?

50596142255057180250.png

Opublikowano

@Up

Po pierwsze, os.execute nie wykonuje zapytań, a skrypt php. Po drugie, oczywiście, uruchomi on skrypt, w którym jest np. zapytanie z selectem, wykona go, zwróci wynik, ale nie do questa..

Pomylka ;d lecz mozna wykonac normalnie zapytanie przez os.execute :) ale i tak nie zwroci wyniku tylko status wykonany lub nie

11-37.59.93.25.png
Opublikowano

@Niga

To też nie jest do końca luasql, to działa na zasadzie:

wykonuje zapytanie przez os.execute, zapisuje wynik do pliku i odczytuje plik z questa. Zadziała, w przeciwieństwie do tego co dał Badar, ale też nie bezpośrednio ;)


 

Opublikowano

heh jesli ty chcesz zrobic ze np zmieniasz kogos nick i potem ma ci go zrocic to jest to niewykonalne poniewaz nie da sie aby ci zwrocilo wiec do usuniecia

QmxvbmR5blhfX19ldW5lX19fNTI0X19fTlVMTF9fXzNfX18xMDBfX19ub25lLnBuZ19fXzhfX19ub25lX19fMDAwMDAwX19fc29sbw==.png
Opublikowano

Dobraaa każdy błedy popełnia, wzorowałem się na tym co mi pewna osoba podpowiedziała : >

Opublikowano

Badar mnie wkurwia, bo ma tuty nie na temat, albo skopiowane z neta lub jakiejś książki. Zupełnie nie wie o co mu chodzi, jak napisze temat to nie wie co w nim jest.... Widać, że wszystko kopiujesz, albo dostajesz od kogoś...

EXPmIpC.gif

Opublikowano

Badar mnie wkurwia, bo ma tuty nie na temat, albo skopiowane z neta lub jakiejś książki. Zupełnie nie wie o co mu chodzi, jak napisze temat to nie wie co w nim jest.... Widać, że wszystko kopiujesz, albo dostajesz od kogoś...

 

Gówno prawda ...

 

Rozumiem, poprostu pewna osoba mi to rozjaśniła, piszę też czasem wg swojej modły . A tobie chuj do tego skąd czerpię wiedzę .

 

 

@UP - Coś mi te linki uja dały, szczególnie ten z e-pvp ; p . .

 

A co o tym powiecie :

http://wiki.garrysmod.com/?title=MySQL_Tutorial

Opublikowano

Znów wbijam w temat "pustaka" badara.

 

LuaSQL to http://www.keplerproject.org/luasql/

 

Te twoje to wykorzystanie os.execute czyli funkcji z ojczystej Lua.

funkcja os.execute wpisuje polecenie w maszyne. Działa jak funkcja system() w PHP.

 

Badarku jak uważasz, że to jest LuaSQL to na PW quest na np. newsy czyli zgrywanie z mysqla do gry używając tylko os.execute i php

Opublikowano

Witajcie .

 

Tylu "questologów" to znało (zapewne nie jeden "obrzuci mnie błotem", ale co mi tam ;p .

 

Kiedyś na tym zacnym forum wspomniano o szlachetnej funkcji "os.execute" -- też uważam, iż jest piękna

^^, ale do rzeczy.

 

Dlaczego by nie użyć naszego kochanego języka php do wysyłania / pozyskiwania wartości z baz mysql ?

 

O to mój sposób :

 

questlib.lua :

 

 




function query(x)
local sql = (x)
os.execute("php /home/www/badar.php "..sql.."")
end

quest_funkcjons :

 

query

 

skrypt :

 

 



<?php
Include("config.php"); -- można użyć "mysql_connect()"
$zap = $argv['1'];
mysql_query("$zap");
?>

Sposób użycia :

 

W queście wpisujemy piękną funkcję : query(treść)

 

Przykład :

 

x = pc.get_name()
y = query("SELECT 'account_id' FROM player.player WHERE 'name'='"..x.."';")

Wiem, mega proste

^^.

 

PS : Użyłem zmiennych globalnych, dlatego nie ma przedrostka "local".

 

Dlaczego śmiem twierdzić, iż to działa ?

 

Patrząc prawami logiki funkcja os.execute wykona skrypt php, który wykona nasze zapytanie i zwróci / wgra wartość a wynik przekaże pod zmienną, która deklarowała funkcję "query"

:).

 

Pozdrawiam Badar

^^.

 

Tutorial autorstwa : Badar (Maciej T.) - Zakaz kopiowania, rozpowszechniania treści etc zgodnie z ustawą o prawach autorskich .

  • 4 miesiące temu...
Opublikowano

a ja mam pytanie .. ; ]

umiesz badar zrobić coś takiego:

 

Koles podchodzi do Handlarki ,jest zakladka WYSLIJ ZGLOSZENIE

i tam są 2 miejsca na wpisanie czegos w pole i to wysyla to do tabelki player/zgloszenie ?

nie umieszczamy linków zewnętrznych.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...