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] Trochę więcej o querach


Rekomendowane odpowiedzi

Opublikowano

Witam, w niektórych językach używa się tka zw query (ja znam 2 lua i php). Więc ten skromny tucik objaśni jak ich używać i jakie argumenty mogą przyjmować.

 

  • Czym są wq ogóle query ? - Query, są przydatne gdy chcemy pobrać z bazy mysql jakieś informacje typu exp moba o id taki i takim. Mamy kilka rodzai query
  1. INSERT INTO - jest to warunek, dzięki któremu tworzymy nowy wpisu w bazie, przykład

     

    query("INSERT INTO mob_proto SET vnum = '0', cost = '0';")
     
  2. DELETE- służy to do czyszczenia określonych rekordów w Tabeli , chcemy np usunąć cały exp z tabelki exppiszemy

     

    query("DELETE exp FROM mob_proto;")
     
  3. UPDATE - służy do zaktualizowania dane rekordu w tabeli ,przykład

     

    query("UPDATE mob_proto SET max_gold = max_gold*2;") 
     

    To zwiększy nam maksymalną ilość wypadanych Yang z mobów dwukrotnie

  4. SELECT - używamy, gdy chcemy zaznaczyć jakiś rekord i potem go np pokazać, wtedy robimy tak

     

    query("SELECT id FROM mob_proto;")
     

     

    Zaznaczy nam to pierwszy rekord w tabelce "id".

WARUNKI

Często bywa tak, że chcemy zaznaczyć (SELECT), bądź zaktualizować (UPDATE) więcej niż 1 rekrod, lub tylko wybranie rekordy. Mamy na to 2 sposoby, pierwszy moim zdaniem lepszy, to użycie warunku WHERE. Where oznacza gdzie, reasumując piszemy coś typu "zaktualizuj exp w mob_proto gdzie ...". Do warunku when może dać np. że jeśli id moba jest większe od 100 i mniejsze od 195,czyli piszemy tak

 

 query("UPDATE mob_proto SET exp = exp*2 WHERE vnum > 100 AND vnum < 195;")
 

 

Jak widzicie użyłem tutaj warunku AND, jest on potrzebny i to dość często. Oznacza on po prostu "i"

 

Drugim sposobem jest LIMIT, każdysię chyba domyśla o co biega. Jest ona na tyle nie funkcjonalna, że zaznacza np rekordy od góry np.

 

query("UPDATE mob_proto SET exp = exp*2 LIMIT 15;")
 

 

powiększy nam exp *2 u rekordów od 1 - 15. Z tą funkcją można jeszcze użyć OREDR BY, która porządkuje nam rekordy tabeli, np. od najmniejszy do największej lub na odwrót, lub od A do Z

 

query("SELECT exp  FROM mob_proto ORDER BY level asc LIMIT 15;")
 

 

pokaże nam to 15 rekordów z tabelki exp, porządkując je od najmniejszej do największej,według tabelki level. Z kolei

 

query("SELECT exp  FROM mob_proto ORDER BY level desc LIMIT 15;")
 

 

pokaże nam 15 rekordów z tabeli epx ale od największego do najmniejszego również według tabelki level.

Takim oto sposobem doszliśmy do końca, tego mini poradnika, mam nadzieję, że już nikt nie będzie miał problemów z pobraniem expu z moba a danym ID.

nexi.png

 

CYTOWAĆ MOJE POSTY, JEŚLI LICZYCIE NA POMOC !!

Opublikowano

Dzięki, ale coś podobnego dał już Xyli jakiś czas temu

 

http://www.mpcforum.pl/topic/670953-tutorial-jak-tworzyc-zapytania-w-jezyku-sql/

Obama wie, co robisz!!!
131894.jpg                                                                                                                                                    4906167742.png

                                                                                                                                                                                                                                                                                      LTE Play Opole

Opublikowano

Tak wgl samym query nic nie zrobisz.

Żeby query działało trzeba napisać do niego funkcje, najlepiej opierającą się na klasach (class).

Jeśli ktoś niepotrafi napisać funkcji to " query " mkożna zastąpić " mysql_query ".

Opublikowano

Tak wgl samym query nic nie zrobisz.

Żeby query działało trzeba napisać do niego funkcje, najlepiej opierającą się na klasach (class).

Jeśli ktoś niepotrafi napisać funkcji to " query " mkożna zastąpić " mysql_query ".

o czym ty gadasz?


 

Opublikowano

jprd wez ty sie naucz pierwsze ich uzywac

Query

DELETE exp FROM mob_proto

 

NIE MA PRAWA DZIALAC

To łaskawie powiedz czemu ?

nexi.png

 

CYTOWAĆ MOJE POSTY, JEŚLI LICZYCIE NA POMOC !!

Opublikowano

delete from mob_proto - usuwa z mob_proto wszystko

delete from mob_proto where - tu robimy warunek

koles ogarnij sie a potem pisz poradniki

ban.gif

 

Opublikowano

To łaskawie powiedz czemu ?

Ponieważ nie można usunąć exp, bo to jest tabelka, a my chcemy usunąć jakąś wartość.

Poprawnie powinno wygląda to np. tak:

 

mysql_query("DELETE FROM player.mob_proto WHERE  exp='5486676'");
Opublikowano

 

Ponieważ nie można usunąć exp, bo to jest tabelka, a my chcemy usunąć jakąś wartość.

Poprawnie powinno wygląda to np. tak:

 

mysql_query("DELETE FROM player.mob_proto WHERE  exp='5486676'");

kolumna exp to int nie varchar wiec '' nie sa potrzebne

ban.gif

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...