1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Mi: 02 Juli 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Help with query database

    • SlimRF
    • 22. November 2016 um 12:10
    • Geschlossen
    • Erledigt
    • SlimRF
      Anfänger
      Reaktionen
      7
      Trophäen
      10
      Beiträge
      48
      • 22. November 2016 um 12:10
      • #1

      this my code.

      Code
      private ["_time1","_time2","_query"];
      
      
      
      
      
      
      
      _query = format["SELECT p_time FROM players WHERE p_time='%1'",_time1];
      waitUntil{!DB_Async_Active};
      _queryResult = [_query,2] call DB_fnc_asyncCall;
      
      
      
      
      
      
      
      if(_time1 > 0) then
      {
       _time2 = _time1 - 1;
      };
      
      
      
      
      _query = format["UPDATE players SET p_time='%1'",_time2];
      waitUntil {sleep (random 0.3); !DB_Async_Active};
      [_query,2] call DB_fnc_asyncCall;
      Alles anzeigen

      I'm trying to make query.

      Example : 1. script read p_time column from all players.
      2. script subtract "1"
      3. script write in p_time new value
      (300-1=299)
      p_time FOR all players.


      But my code write "0" to all players

      What i do wrong? Help me please.

      altis life 3.1.4.8 extdb2

    • Rom
      Kenner
      Reaktionen
      156
      Beiträge
      533
      • 22. November 2016 um 14:05
      • #2

      You have to use the WHERE Statement in Update:
      _query = format["UPDATE players SET p_time='%1' WHERE p_time='%2'",_time2, _time1];

      And you have to define _time1 first and select _time2 from your _queryresult

      #mobile

      Wenn ich etwas missverstanden habe, hoppala

    • SlimRF
      Anfänger
      Reaktionen
      7
      Trophäen
      10
      Beiträge
      48
      • 22. November 2016 um 15:15
      • #3
      Zitat von Rom

      You have to use the WHERE Statement in Update:
      _query = format["UPDATE players SET p_time='%1' WHERE p_time='%2'",_time2, _time1];

      And you have to define _time1 first and select _time2 from your _queryresult

      #mobile

      Code
      private ["_time1","_time2","_query","_queryResult"];
      
      
      
      
      _query = format["SELECT p_time FROM players WHERE p_time='%1'",_time1];
      waitUntil{!DB_Async_Active};
      _queryResult = [_query,2] call DB_fnc_asyncCall;
      _time1 = _queryResult;
      
      
      
      
      if(_time1 > 0) then
      {
       _time2 = _time1 - 1;
      };
      
      
      
      
      _query = format["UPDATE players SET p_time='%1' WHERE p_time='%2'",_time2, _time1];
      waitUntil {sleep (random 0.3); !DB_Async_Active};
      [_query,2] call DB_fnc_asyncCall;
      Alles anzeigen

      like this?
      Sorry please! I'm not good at this yet. Help me to fix everything ;(

    • Rom
      Kenner
      Reaktionen
      156
      Beiträge
      533
      • 22. November 2016 um 15:59
      • #4

      How do you call your function/script?

      [arguments] call/spawn/remoteExec/remoteExecCall tag_fnc_functionname

      Code
      /*
      	Passed argement is _time1
      	You can call this serverside script with:
      		[300] remoteExec ["tag_fnc_functionname",2];
      		Change your tag_fnc_functionname
      */
      private ["_time2","_query","_queryResult"];
      params [["_time1",-1,[0]]]; // passed argement, default is -1, expect 0=number
      if (_time1 isEqualTo -1) exitWith {diag_log "No argument found";};
      _query = format["SELECT p_time FROM players WHERE p_time='%1'",_time1];
      waitUntil{!DB_Async_Active};
      _queryResult = [_query,2] call DB_fnc_asyncCall;
      _time1 = _queryResult select 0;
      if ((_time1 - 1) < 0) exitWith {}; // cancel script execution, because negative number
      _time2 = _time1 - 1;
      _query = format["UPDATE players SET p_time='%1' WHERE p_time='%2'",_time2, _time1]; // Replace existing data with current _time1 with the new one (_time2), not all
      waitUntil {sleep (random 0.3); !DB_Async_Active};
      [_query,2] call DB_fnc_asyncCall;
      Alles anzeigen

      this is one possibility

      Wenn ich etwas missverstanden habe, hoppala

    • SlimRF
      Anfänger
      Reaktionen
      7
      Trophäen
      10
      Beiträge
      48
      • 22. November 2016 um 16:05
      • #5
      Zitat von Rom

      How do you call your function/script?

      [arguments] call/spawn/remoteExec/remoteExecCall tag_fnc_functionname

      Code
      /*
      	Passed argement is _time1
      	You can call this serverside script with:
      		[300] remoteExec ["tag_fnc_functionname",2];
      		Change your tag_fnc_functionname
      */
      private ["_time2","_query","_queryResult"];
      params [["_time1",-1,[0]]]; // passed argement, default is -1, expect 0=number
      if (_time1 isEqualTo -1) exitWith {diag_log "No argument found";};
      _query = format["SELECT p_time FROM players WHERE p_time='%1'",_time1];
      waitUntil{!DB_Async_Active};
      _queryResult = [_query,2] call DB_fnc_asyncCall;
      _time1 = _queryResult select 0;
      if ((_time1 - 1) < 0) exitWith {}; // cancel script execution, because negative number
      _time2 = _time1 - 1;
      _query = format["UPDATE players SET p_time='%1' WHERE p_time='%2'",_time2, _time1]; // Replace existing data with current _time1 with the new one (_time2), not all
      waitUntil {sleep (random 0.3); !DB_Async_Active};
      [_query,2] call DB_fnc_asyncCall;
      Alles anzeigen

      this is one possibility

      call my function in int.sqf


      Code
      [] spawn{
      	while {true} do {
      		sleep (1 * 60);
      		[] call TON_fnc_updatedtime;
      	};
      };
    • SlimRF
      Anfänger
      Reaktionen
      7
      Trophäen
      10
      Beiträge
      48
      • 22. November 2016 um 16:11
      • #6

      All players are different values. I need to subtract "1 " each player in p_time column. Even if the player is not on the server. Every 15 minutes.

    • SlimRF
      Anfänger
      Reaktionen
      7
      Trophäen
      10
      Beiträge
      48
      • 22. November 2016 um 16:33
      • #7
      Code
      /*
       Passed argement is _time1
       You can call this serverside script with:
       [300] remoteExec ["tag_fnc_functionname",2];
       Change your tag_fnc_functionname
      */
      private ["_time2","_query","_queryResult"];
      params [["_time1",-1,[0]]]; // passed argement, default is -1, expect 0=number
      if (_time1 isEqualTo -1) exitWith {diag_log "No argument found";};
      _query = format["SELECT p_time FROM players WHERE p_time='%1'",_time1];
      waitUntil{!DB_Async_Active};
      _queryResult = [_query,2] call DB_fnc_asyncCall;
      _time1 = _queryResult select 0;
      if ((_time1 - 1) < 0) exitWith {}; // cancel script execution, because negative number
      _time2 = _time1 - 1;
      _query = format["UPDATE players SET p_time='%1' WHERE p_time='%2'",_time2, _time1]; // Replace existing data with current _time1 with the new one (_time2), not all
      waitUntil {sleep (random 0.3); !DB_Async_Active};
      [_query,2] call DB_fnc_asyncCall;
      Alles anzeigen

      does not work((( ;(

    • Rom
      Kenner
      Reaktionen
      156
      Beiträge
      533
      • 22. November 2016 um 16:40
      • #8

      do you call the function serverside? life_server\init.sqf or clientside mission.map\init.sqf?

      Wenn ich etwas missverstanden habe, hoppala

    • SlimRF
      Anfänger
      Reaktionen
      7
      Trophäen
      10
      Beiträge
      48
      • 22. November 2016 um 16:41
      • #9
      Zitat von Rom

      do you call the function serverside? life_server\init.sqf or clientside mission.map\init.sqf?

      serverside ( life_server/init.sqf)

    • Rom
      Kenner
      Reaktionen
      156
      Beiträge
      533
      • 22. November 2016 um 17:11
      • #10
      Zitat von SlimRF

      serverside ( life_server/init.sqf)


      Not tested yet/can not test it

      Code
      [] spawn{
           while {true} do {
           sleep (1 * 60);
           [] spawn TON_fnc_updatedtime; // call -> spawn
           };
          };


      Code
      /*
      	Passed argement is _time1
      	You can call this serverside script with:
      		0 spawn TON_fnc_updatedtime;
      */
      private ["_time1","_time2","_query","_queryResult"];
      if !canSuspend exitWith {diag_log "TON_fnc_updatedtime has to be called (spawn) in sheduled environment, see description";};
      _uids = "";
      {
      	if(_uids isEqualTo "") then {
      		_uids = (getPlayerUID _x);
      	} else { 
      		_uids = format["%1,%2",_uids,getPlayerUID _x];
      	};
      } forEach allPlayers;
      _query = format["SELECT pid,p_time FROM players WHERE pid not IN (%1)",_uids]; // only select entries without players are not online
      waitUntil{!DB_Async_Active};
      _queryResult = [_query,2] call DB_fnc_asyncCall; // 2=excepting
      diag_log format["p_time query return: %1",_queryResult];
      _time1 = _queryResult select 0;
      if (count _queryResult < 1) exitWith {diag_log "No p_time changed";};
      if ((_time1 - 1) < 0) exitWith {}; // cancel script execution, because negative number
      {
      	_x params [["_uid","",[""]],["_time1",-1,[0]]];
      	_time2 = (_time1 -1);
      	if (!(_uid isEqualTo "") && (_time2 > 0)) then {
      		_query = format["UPDATE players SET p_time='%1' WHERE pid='%2'",_time2, _uid]; // Replace existing data with current _time1 with the new one (_time2), not all
      		diag_log format ["%1: new time %2", _uid, _time2];
      		waitUntil {sleep (random 0.3); !DB_Async_Active};
      		[_query,1] call DB_fnc_asyncCall; // 1=only insert/update data in database without return
      	};
      } forEach _queryResult;
      Alles anzeigen

      Wenn ich etwas missverstanden habe, hoppala

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™