Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Zabezpieczenie przed dublowanie sie wpisów w bazie danych


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 13.08.2014 14:11

Witam. Szukam zabezpieczenia przed dublowaniem sie wpisow w bazie danych. Wiem ze trzeba bylo nadac unikalny klucz pewnej kolumnie w bazie (ja chce to zrobic na nick) oraz dodac do pluginu przy tworzeniu wpisu pewna fraze. Moglby mi to ktos przyblizyc?


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#2 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 13.08.2014 14:18

http://zasoby.open.a...y=t&menu=UNIQUE


  • +
  • -
  • 0

#3 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 13.08.2014 14:32

Zrobilbym tak:

ALTER TABLE `nazwa_tabeli` ADD PRIMARY KEY (`nazwa_kolumny`)

 A na serwerze podczas dodawania wpisu w bazie zamienie to:

formatex(q_command, 511, "INSERT INTO `%s` (`nick`,`klasa`,`lvl`,`exp`) VALUES ('%s',%i,1,0)", g_sqlTable, name, class);

na:

formatex(q_command, 511, "INSERT INTO `%s` (`nick`,`klasa`,`lvl`,`exp`) VALUES ('%s',%i,1,0) ON DUPLICATE KEY UPDATE `exp` = `exp`+VALUES(`exp`)", g_sqlTable, name, class);

Bedzie trybic?


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#4 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 13.08.2014 23:16

Jeśli masz osobno aktualizację i osobno dodawanie wpisu w kodzie to nie ma ta modyfikacja sensu. Połącz te 2 rzeczy razem.
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#5 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 16.08.2014 15:08

Czyli zbierając to wszystko w całość:

- z tym unikalnym kluczem jako nick jest ok

- jeżeli nowy gracz wbija na serwer nie tworzyć mu nowego wpisu od razu tylko wtedy gdy doświadczenie będzie zapisywane do bazy danych i używać tam komendy:

 

formatex(q_command, 511, "INSERT INTO `%s` (`nick`,`klasa`,`lvl`,`exp`) VALUES ('%s',%i,%i,%i) ON DUPLICATE KEY `exp` = `exp`+VALUES(`exp`)", g_sqlTable, name, class, PlayerLevel[id], PlayerXp[id]);

 

Jak zwrócić w tym zapytaniu ilość expa która jest już z bazie? Chcę zrobić tak, że do jednej zmiennej będę zapisywał exp jaki gracz zdobył na jednej mapie a następnie przy zmianie mapy czy wyjściu z serwera pobierał ilość expa w bazie danych, dodawał ilość expa zdobytego i zapisywał do bazy. Potrzebuję tego ponieważ czasami nie wiem czemu resetuje graczom poziom.

 


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych