21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
« 1 2 3 »
Autor Zpráva
Yuff.3
Profil
Fisir:
Zabralo, nedočítal som to komplet. Sorry.
Ale toto bohužiaľ aj tak nie je vyhovujúce riešenie. Pretože v tomto prípade mi zobrazí/zvýrazní prvého admina, no druhého už nie..
Tomáš123
Profil
Yuff.3:
Jak to mám zmeniť, aby cyklus prešiel vždy len raz
Používaj break. Druhú časť podmienky vyber z cyklu týmto spôsobom.
Fisir
Profil
Reaguji na Yuff.3:
Tak jsi to přece chtěl. Chtěl jsi, aby se cyklus provedl jen jednou a řešení je odstranit cyklus. Ujasni si, co teda chceš a podotýkám, že ten cyklus zajišťuje vypsání všech administrátorů.
Yuff.3
Profil
Fisir:
Ospravedlňujem sa, zrejme som sa zle vyjadril.
Tomáš123:
Moc moc ďakujem, naštudoval som si tú funkciu, zapísal som ju, síce neviem či je to po stránke kódu celkom správne, ale zatiaľ sa zdá, že to funguje presne tak ako chcem. Nemal som možnosť otestovať to stopercentne, ale keď budem mať, určite napíšem. Ako vravím, zatiaľ sa zdá, že to je presne to čo som potreboval.

Všetkým čo sa snažili pomôcť veľmi pekne ďakujem.
Yuff.3
Profil
$ano = "1";
$result = dbquery("SELECT * FROM ".DB_USERS." WHERE admin_multi_fun='".$ano."' ");
$rows = dbrows($result);
if ($rows != 0) {
$found = false;
while ($userdata = dbarray($result)) {

                     for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
                  if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV" && $userdata['user_steamid'] == htmlentities($servermultifun[$imultifun]["wonid"]) ) {

    echo "<tr align='center'><td><b><a href='".BASEDIR."4funprofil.php?uzivatel=".$userdata['user_id']."&page=kontakt#tu' 
    title='Administrátor servera "htmlentities($servermultifun["name"])."'>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</a></b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["frag"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["time"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["ping"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["wonid"]);
                echo "</b></td></tr>";
                
                echo "<tr align='center'><td><br/></td></tr>";
    $found = true;
    break;
    }
    }
    }
    }
    if (!$found) {
    echo "<tr align='center'><td>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["frag"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["time"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["ping"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["wonid"]);
                echo "</td></tr>";
                
                echo "<tr align='center'><td><br/></td></tr>";  
    }

Aktuálny kód - nefunguje - keď som bol teraz na servery ako admin, a dvaja normálny hráči - hráčov neukazovalo. Ani po mojom odpojení hráčov neukazuje. Zobrazuje len adminov.
Zrejme mám zle tú break funkciu..?
mimochodec
Profil
Yuff.3:
$ano = "1";
$result = dbquery("SELECT * FROM ".DB_USERS." WHERE admin_multi_fun='".$ano."' ");

Co přesně myslíš, že dělá toto?
Yuff.3
Profil
mimochodec:
presne to čo má.
Vytiahne mi to údaje o členoch, ak je splnené že v stlpci admin_multi_fun je číslo 1
Podľa teba je chyba v tom?


$ano = "1";
$result = dbquery("SELECT * FROM ".DB_USERS." WHERE admin_multi_fun='".$ano."' ");
$rows = dbrows($result);
if ($rows != 0) {
$found = false;
while ($userdata = dbarray($result)) {

                     for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
                  if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV" && $userdata['user_steamid'] == htmlentities($servermultifun[$imultifun]["wonid"]) ) {

    echo "<tr align='center'><td><b><a href='".BASEDIR."4funprofil.php?uzivatel=".$userdata['user_id']."&page=kontakt#tu' 
    title='Administrátor servera ".htmlentities($servermultifun["name"])."'>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</a></b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["frag"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["time"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["ping"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["wonid"]);
                echo "</b></td></tr>";
                
                echo "<tr align='center'><td><br/></td></tr>";
    $found = true;
    break;
    }
    }
    }
    }
    if (!$found) {
    for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV") {
    echo "<tr align='center'><td>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["frag"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["time"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["ping"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["wonid"]);
                echo "</td></tr>";
                
                echo "<tr align='center'><td><br/></td></tr>";  
}}
    }
dal som to takto - a teraz mi ukazuje hráčov, ale keď sa pripojím ja ako admin, tak ukáže len mňa a nie aj hráčov.
mimochodec
Profil
Yuff.3:
keď som bol teraz na servery ako admin, a dvaja normálny hráči - hráčov neukazovalo. Ani po mojom odpojení hráčov neukazuje.

Vytiahne mi to údaje o členoch, ak je splnené že v stlpci admin_multi_fun je číslo 1

Zkus se ještě jednou zamyslet. Jestli jsi přihlášen nebo ne, to s tímhle vůbec nesouvisí. Ten dotaz zařídí vypsání všech členů, kde platí admin_multi_fun = 1

Jestli tady budeš v každém druhém příspěvku vypisovat komplet kód, který s problémem navíc vůbec nesouvisí, nebudu tě mít rád. Zkus nejdřív přemýšlet, pak něco zkoušet, když neuspěješ, dej sem ten kód, ve kterém je problém. Žádný jiný.


Kódu bys mimochodem taky o hodně líp rozuměl, kdybys ho rozumně formátoval.
Yuff.3
Profil
mimochodec:
Prepáč, že nie som profesionál. Snažím sa a stále na tom pracujem.

Ten dotaz zařídí vypsání všech členů, kde platí admin_multi_fun = 1
áno, to je presne to čo chcem. Okrem toho ale potrebujem, aby vypísalo aj tých čo túto podmienku nesplnia. Samozrejme týchto ale vypíše už trochu ináč.

Zkus nejdřív přemýšlet, pak něco zkoušet, když neuspěješ, dej sem ten kód, ve kterém je problém
Prvé som splnil, aj druhé, aj tretie. Ešte raz prepáč, že neviem presne v ktorej časti kódu je chyba. Ale už som písal -
Yuff.3:
Zrejme mám zle tú break funkciu..?
Tomáš123
Profil
Yuff.3:
Zrejme mám zle tú break funkciu..
V tvojom kóde som presunul podmienkový blok pod veľkú podmienku (vyznačené nižšie). Vyskúšaj, či to funguje ako má:
$ano = "1";
$result = dbquery("SELECT * FROM ".DB_USERS." WHERE admin_multi_fun='".$ano."' ");
$rows = dbrows($result);
if ($rows != 0) {
    $found = false;
    while ($userdata = dbarray($result)) {
        for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
            if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV" && $userdata['user_steamid'] == htmlentities($servermultifun[$imultifun]["wonid"]) ) {
                echo "<tr align='center'><td><b><a href='".BASEDIR."4funprofil.php?uzivatel=".$userdata['user_id']."&page=kontakt#tu' 
    title='Administrátor servera ".htmlentities($servermultifun["name"])."'>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</a></b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["frag"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["time"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["ping"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["wonid"]);
                echo "</b></td></tr>";
                
                echo "<tr align='center'><td><br/></td></tr>";
                $found = true;
                break;
            }
        }
    }
    if (!$found) {
        for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
            if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV") {
                echo "<tr align='center'><td>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["frag"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["time"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["ping"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["wonid"]);
                echo "</td></tr>";
                
                echo "<tr align='center'><td><br/></td></tr>";  
            }           
        }
    }
}

Správnosť použitia a výsledky kódu som neskúmal.
Yuff.3
Profil
Tomáš123:
moc ďakujem, ale výsledok je rovnaký..
Keď som pripojený ako admin - vypíše ma tak ako má. Keď je pripojený hráč - vypíše ho tak ako má. Keď sa však prihlási aj hráč aj admin, vypíše len admina, hráča nie.
mimochodec
Profil
Yuff.3:
„Ten dotaz zařídí vypsání všech členů, kde platí admin_multi_fun = 1“
áno, to je presne to čo chcem. Okrem toho ale potrebujem, aby vypísalo aj tých čo túto podmienku nesplnia. Samozrejme týchto ale vypíše už trochu ináč.

Takže nie, nechceš vypsat ty, kteří mají admin_multi_fun = 1, ale chceš vypsat všechny. Mezi tím je jistý rozdíl. Tu podmínku v tom dotazu zruš a někam dovnitř do toho while dej
if ($userdata['admin_multi_fun'] == 1 ) {
  echo "tohle se provede, když je admin";
} else  {
  echo "tohle se provede, když není admin";
}

Kdybych tušil, co znamenají ty tanečky kolem $servermultifun, asi bych ti poradil, jak to udělat líp. Takhle ale neporadím, protože to netuším.


Takže ten dotaz bude nejspíš
$result = dbquery("SELECT * FROM ".DB_USERS." ORDER BY admin_multi_fun DESC");
Yuff.3
Profil
mimochodec:
z riadku 2 som odstránil toto:
Tomáš123:
WHERE admin_multi_fun='".$ano."'
a na riadok 8 som dopísal ú podmienku. konkrétne celý riadok teraz vyzerá takto: if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV" && $userdata['user_steamid'] == htmlentities($servermultifun[$imultifun]["wonid"]) && $userdata['admin_multi_fun'] == $ano ) { ale NEFUNGUJE stále.
Správa sa rovnako ako predtým. Vypíše len mňa - ako admina -> else neprebehne.


mimochodec:
Kdybych tušil, co znamenají ty tanečky kolem $servermultifun, asi bych ti poradil, jak to udělat líp. Takhle ale neporadím, protože to netuším.
to je irelevantné - sú to premenné tvorené na základe istej funkcie pfopen či ako sa to volá - na základe toho vyťahujem z herného servera isté údaje, ktoré si viem potom takto vložiť na stránku pomocou php.
mimochodec
Profil
Yuff.3:
Zkus ještě popsat, k čemu je to $servermultifun.
Není to irelevantní. Popiš co v tom je, nebo ukaž var_dump ($servermultifun)
Yuff.3
Profil
mimochodec:
Stalo sa - doplnil som príspevok kým si písal svoj.
// To je ale nepodstatné - tieto premenné s mojim problémom nesúvisia a 100% fungujú. Kým som tam nepovkladal moje nové kódy, tak to pekne fungovalo. Vlastne aj funguje - len nie celkom presne ako by som chcel..


Dobre, na riadok 21 som dal ten var_dump - nech sa páči: array(10) { ["ip"]=> string(19) "92.240.236.18:27061" ["name"]=> string(32) "4funportal.eu | Multi-Fun server" ["map"]=> string(7) "fy_snow" ["mod"]=> string(48) "Counterstrike 48/1.1.2.7/Stdio 6027 secure (10)" ["game"]=> string(8) "Halflife" ["activeplayers"]=> string(1) "3" ["maxplayers"]=> string(2) "12" [1]=> array(7) { ["name"]=> string(7) "Smarter" ["id"]=> string(2) "56" ["wonid"]=> string(19) "STEAM_0:0:102376159" ["frag"]=> string(2) "23" ["time"]=> string(5) "23:16" ["ping"]=> string(2) "91" ["adress"]=> string(20) "83.252.138.105:27005" } [2]=> array(7) { ["name"]=> string(6) "Yuff.3" ["id"]=> string(2) "58" ["wonid"]=> string(18) "STEAM_0:1:31973687" ["frag"]=> string(1) "0" ["time"]=> string(5) "14:06" ["ping"]=> string(2) "21" ["adress"]=> string(18) "213.215.93.8:27005" } [3]=> array(7) { ["name"]=> string(19) "Shut UP and Squat!!" ["id"]=> string(2) "62" ["wonid"]=> string(20) "STEAM_0:4:1914025605" ["frag"]=> string(2) "15" ["time"]=> string(5) "06:52" ["ping"]=> string(2) "34" ["adress"]=> string(20) "178.143.119.77:16998" } }


Už som tu raz dával aj živý odkaz - možno pomôže aj ten..
Kubo2
Profil
Yuff.3:
Zkús sem prosím postnúť formátovaný výstup var_dump($servermultifun) zo zdrojového kódu stránky, kam ho vypisuješ (stačí, ak upravíš [#15]).
Yuff.3
Profil
Kubo2:
Myslíš takto? :
array(10) {
  ["ip"]=>
  string(19) "92.240.236.18:27061"
  ["name"]=>
  string(32) "4funportal.eu | Multi-Fun server"
  ["map"]=>
  string(7) "fy_snow"
  ["mod"]=>
  string(48) "Counterstrike 48/1.1.2.7/Stdio 6027 secure  (10)"
  ["game"]=>
  string(8) "Halflife"
  ["activeplayers"]=>
  string(1) "3"
  ["maxplayers"]=>
  string(2) "12"
  [1]=>
  array(7) {
    ["name"]=>
    string(9) "Sucker :*"
    ["id"]=>
    string(2) "99"
    ["wonid"]=>
    string(16) "STEAM_0:1:128836"
    ["frag"]=>
    string(1) "0"
    ["time"]=>
    string(5) "03:32"
    ["ping"]=>
    string(2) "40"
    ["adress"]=>
    string(18) "176.61.240.92:1024"
  }
  [2]=>
  array(7) {
    ["name"]=>
    string(6) "Frajer"
    ["id"]=>
    string(3) "102"
    ["wonid"]=>
    string(18) "STEAM_0:0:60394812"
    ["frag"]=>
    string(1) "0"
    ["time"]=>
    string(5) "01:22"
    ["ping"]=>
    string(2) "68"
    ["adress"]=>
    string(19) "176.61.240.92:27005"
  }
  [3]=>
  array(7) {
    ["name"]=>
    string(11) "JUDEN-MORD;"
    ["id"]=>
    string(3) "103"
    ["wonid"]=>
    string(20) "STEAM_0:4:1593009413"
    ["frag"]=>
    string(1) "0"
    ["time"]=>
    string(5) "00:07"
    ["ping"]=>
    string(2) "67"
    ["adress"]=>
    string(19) "178.40.186.20:27005"
  }
}
<tr align='center'><td><br/></td></tr><tr align='center'><td>Frajer</td><td>0</td><td>01:22</td><td>68</td><td>STEAM_0:0:60394812</td></tr>array(10) {
  ["ip"]=>
  string(19) "92.240.236.18:27061"
  ["name"]=>
  string(32) "4funportal.eu | Multi-Fun server"
  ["map"]=>
  string(7) "fy_snow"
  ["mod"]=>
  string(48) "Counterstrike 48/1.1.2.7/Stdio 6027 secure  (10)"
  ["game"]=>
  string(8) "Halflife"
  ["activeplayers"]=>
  string(1) "3"
  ["maxplayers"]=>
  string(2) "12"
  [1]=>
  array(7) {
    ["name"]=>
    string(9) "Sucker :*"
    ["id"]=>
    string(2) "99"
    ["wonid"]=>
    string(16) "STEAM_0:1:128836"
    ["frag"]=>
    string(1) "0"
    ["time"]=>
    string(5) "03:32"
    ["ping"]=>
    string(2) "40"
    ["adress"]=>
    string(18) "176.61.240.92:1024"
  }
  [2]=>
  array(7) {
    ["name"]=>
    string(6) "Frajer"
    ["id"]=>
    string(3) "102"
    ["wonid"]=>
    string(18) "STEAM_0:0:60394812"
    ["frag"]=>
    string(1) "0"
    ["time"]=>
    string(5) "01:22"
    ["ping"]=>
    string(2) "68"
    ["adress"]=>
    string(19) "176.61.240.92:27005"
  }
  [3]=>
  array(7) {
    ["name"]=>
    string(11) "JUDEN-MORD;"
    ["id"]=>
    string(3) "103"
    ["wonid"]=>
    string(20) "STEAM_0:4:1593009413"
    ["frag"]=>
    string(1) "0"
    ["time"]=>
    string(5) "00:07"
    ["ping"]=>
    string(2) "67"
    ["adress"]=>
    string(19) "178.40.186.20:27005"
  }
}
<tr align='center'><td><br/></td></tr><tr align='center'><td>JUDEN-MORD;</td><td>0</td><td>00:07</td><td>67</td><td>STEAM_0:4:1593009413</td></tr>array(10) {
  ["ip"]=>
  string(19) "92.240.236.18:27061"
  ["name"]=>
  string(32) "4funportal.eu | Multi-Fun server"
  ["map"]=>
  string(7) "fy_snow"
  ["mod"]=>
  string(48) "Counterstrike 48/1.1.2.7/Stdio 6027 secure  (10)"
  ["game"]=>
  string(8) "Halflife"
  ["activeplayers"]=>
  string(1) "3"
  ["maxplayers"]=>
  string(2) "12"
  [1]=>
  array(7) {
    ["name"]=>
    string(9) "Sucker :*"
    ["id"]=>
    string(2) "99"
    ["wonid"]=>
    string(16) "STEAM_0:1:128836"
    ["frag"]=>
    string(1) "0"
    ["time"]=>
    string(5) "03:32"
    ["ping"]=>
    string(2) "40"
    ["adress"]=>
    string(18) "176.61.240.92:1024"
  }
  [2]=>
  array(7) {
    ["name"]=>
    string(6) "Frajer"
    ["id"]=>
    string(3) "102"
    ["wonid"]=>
    string(18) "STEAM_0:0:60394812"
    ["frag"]=>
    string(1) "0"
    ["time"]=>
    string(5) "01:22"
    ["ping"]=>
    string(2) "68"
    ["adress"]=>
    string(19) "176.61.240.92:27005"
  }
  [3]=>
  array(7) {
    ["name"]=>
    string(11) "JUDEN-MORD;"
    ["id"]=>
    string(3) "103"
    ["wonid"]=>
    string(20) "STEAM_0:4:1593009413"
    ["frag"]=>
    string(1) "0"
    ["time"]=>
    string(5) "00:07"
    ["ping"]=>
    string(2) "67"
    ["adress"]=>
    string(19) "178.40.186.20:27005"
  }
}
Yuff.3
Profil
Dal som sem niečo iné čo si očakával alebo mi s tým nevieš pomôcť?
Kubo2
Profil
Yuff.3:
Žiaľ, z dôvodu obmedzenej časovej dispozície som nemal času nazvyš tých dvesto riadkov v [#17] podrobnejšie študovať. Ale myslím, že študovať to napriek všetkému postráda zmysel, dokiaľ komplexnejšie nevysvetlíš, o čo sa vlastne snažíš a čo to robí/nerobí (resp. malo robiť/nerobiť).
Yuff.3
Profil
Tak ešte raz,
priložím na koniec aj kód.
Ide mi o to, že cez funkciu fsockopen vyťahujem z herného serveru dáta. Konkrétne v tomto prípade si dám vypísať zoznam hráčov aktuálne hrajúcich na servery. Vypíše mi ich mená, ping, skóre, steamID,...
Funkcia pekne funguje, všetko je OK, len som tam chcel vložiť podmienku - že v prípade, ak bude hráč na servery admin - teda jeho steamID na servery sa bude zhodovať so steam ID, ktoré má zapísané na webe ako užívateľ (tabuľka users, stlpec user_steamid) a jeho stlpec - admin_multi_fun - bude obsahovať číslo 1 (teda je admin, v zozname adminov) - vypíše mi tohto hráča "zvýraznene", odlišne. Aby bolo vidno, ktorý z hráčov je admin a ktorý hráč je len hráč.
Zrozumiteľnejšie to už vysvetliť neviem.

$ano = "1";
$result = dbquery("SELECT * FROM ".DB_USERS." ORDER BY admin_multi_fun DESC ");
$rows = dbrows($result);
if ($rows != 0) {
$found = false;
while ($userdata = dbarray($result)) {

                     for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
                  if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV" && $userdata['user_steamid'] == htmlentities($servermultifun[$imultifun]["wonid"]) $userdata['admin_multi_fun'] == $ano) {

    echo "<tr align='center'><td><b><a href='".BASEDIR."4funprofil.php?uzivatel=".$userdata['user_id']."&page=kontakt#tu' 
    title='Administrátor servera "htmlentities($servermultifun["name"])."'>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</a></b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["frag"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["time"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["ping"]);
                echo "</b></td><td><b>";
                echo htmlentities($servermultifun[$imultifun]["wonid"]);
                echo "</b></td></tr>";
                
                echo "<tr align='center'><td><br/></td></tr>";
    $found = true;
    break;
    }
    }
    }
    }
    if (!$found) {
    for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV" && $userdata['user_steamid'] == htmlentities($servermultifun[$imultifun]["wonid"]) ) {
    echo "<tr align='center'><td>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["frag"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["time"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["ping"]);
                echo "</td><td>";
                echo htmlentities($servermultifun[$imultifun]["wonid"]);
                echo "</td></tr>";
                
                echo "<tr align='center'><td><br/></td></tr>";  
}}
    }
mimochodec
Profil
<?php

$result = dbquery("SELECT user_id FROM ".DB_USERS." WHERE admin_multi_fun = 1");
$rows = dbrows($result);
$admins = array();

if ($rows) {
  while ($userdata = dbarray($result)) {
    $admins[] = $userdata["user_id"];
  }  
}  
 

for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
  if ($servermultifun[$imultifun]["wonid"] != "HLTV") {

  
    if (in_array ( $servermultifun[$imultifun]["wonid"], $admins)) {
      echo "<tr class='user_admin'>";
      echo "<td><a href='".BASEDIR."4funprofil.php?uzivatel=".$userdata['user_id']."&page=kontakt#tu' title='Administrátor servera '".htmlentities($servermultifun["name"])."'></a></td>"; 
    } else {
      echo "<tr>";
      echo "<td>".htmlentities($servermultifun["name"])."'></td>"; 
    }
  
    echo "<td>".htmlentities($servermultifun[$imultifun]["frag"])."</td>";
    echo "<td>".htmlentities($servermultifun[$imultifun]["time"])."</td>";
    echo "<td>".htmlentities($servermultifun[$imultifun]["ping"])."</td>";
    echo "<td>".htmlentities($servermultifun[$imultifun]["wonid"])."</td>";
  
    echo "</tr>";
  }
}

?>
Přibližně takto. V css si nadefinuj vzhled tr bez přiřazené třídy a pak vzhled tr s třídou "user_admin".

Ještě bych dodal, že neznám tuhle syntaxi pro práci s databází a taky se neorientuju v těch podmínkách, co je tam máš uvnitř toho cyklu. Podstatou toho, jak jsem to napsal, je načtení ID adminů do pole. V každém průchodu toho cyklu pro výpis hráčů se pomocí in_array ověří, jestli daný hráč není admin. To je všechno.
Yuff.3
Profil
mimochodec:
Moc krát ďakujem, ale nefunguje to. Použil som Váš kód, opravil chyby na riadku 20 a 23 - chýba tam "[$imultifun]" a taktiež html tag <a> je uzavretý neskoro. A na riadku 23 je naviac '> - triedy som v css ešte nezadefinoval - predpokladám ale, že kvôli tomu by to fungovalo..
Asi bude zlá tá podmienka.
Aktuálne sa kód správa tak, že vypíše aj adminov aj hráčov, ale keď je admin - tak sa nespráva ako by mal - resp. meno hráča sa nespráva ako odkaz.. Z toho usudzujem, že podmienka nefunguje. Dôvod dysfunkčnosti však nevidím.
Yuff.3
Profil
//Moja chyba (nevšimol som si zlý stĺpec pri vyťahovaní z DB)- všetko dokonale funguje - veľmi pekne ďakujem.
Len malý detail - na riadku 20 premenná $userdata už nefunguje - pochopiteľne, keďže je mimo cyklu. Existuje možnosť ako premennú z uzavretého cyklu dostať do ďalšie, iného cyklu ?
lionel messi
Profil
Yuff.3:
Existuje možnosť ako premennú z uzavretého cyklu dostať do ďalšie, iného cyklu ?
Áno, napríklad pomocou tzv. globálnych premenných. Väčšinou to však nie je najlepší nápad (v odkázanom materiáli sa dozvieš prečo).
mimochodec
Profil
Yuff.3:
Len malý detail - na riadku 20 premenná $userdata už nefunguje - pochopiteľne, keďže je mimo cyklu. Existuje možnosť ako premennú z uzavretého cyklu dostať do ďalšie,

Můžeš si to pamatovat v nějaké proměnné nebo v poli, obdobně jako je v tom posledním řádku na ř. 9. Ale pokud jde konkrétně tady o ten ř. 20, spíš bych to postavil jinak. Nepotřebuješ tam spíš místo $userdata proměnnou $servermultifun[$imultifun]["wonid"]? Tzn. id toho daného usera, na kterého došla řada v tom cyklu přes všechny $servermultifun["activeplayers"].

Za ty nasekané chyby se omlouvám, nebyl jsem úplně v kondici.
Yuff.3
Profil
lionel messi:
Áno, napríklad pomocou tzv. globálnych premenných.
Ďakujem.

mimochodec:
Nepotřebuješ tam spíš místo $userdata proměnnou $servermultifun[$imultifun]["wonid"]?
Určite nie, $servermultifun[$imultifun]["wonid"] je premenná, ktorá obsahuje SteamID užívateľa - ktoré je vyťahované zo servera. Ako si možno všimnúť - html tag <a> ktorý som použil odkazuje na profil užívateľa na webe - a teda potrebujem užívateľove ID na webe, aby som sa mohol k jeho profilu presmerovať. Preto je nutné použiť premennú $userdata.

Za ty nasekané chyby se omlouvám, nebyl jsem úplně v kondici.
Absolútne nevadí, som moc rád, že si mi to pomohol konečne uzavrieť.


A všetkým moc krát ďakujem za každú pomoc a snahu pomôcť.


// za riadok 9 som pridal tento riadok: $user_id = $userdata["user_id"];, ale keď na riadku 20 pristúpim k tej premennej $user_id nastáva zvláštna situácia. Pretože pokiaľ som admin na servery sám, tak moje ID je 1 - čo sedí a presmeruje ma na môj profil. Keď ale príde ďalší admin, si ID XY, tak odkaz na jeho profil je XY, ale rovnaký odkaz je aj na môj profil - čo mi nedáva celkom zmysel..


// Vlastne tomu rozumiem prečo to robí. Pokiaľ to ale uložím ako pole: $user_id[] = $userdata["user_id"];, tak mi vráti hodnotu array. Čomu tiež chápem prečo robí. Len netuším ako dosiahnuť to čo chcem..
Kubo2
Profil
Na riadku 20 už ten predošlý while-cyklus skončil a v $user_id je teda logicky hodnota z poslednej iterácie. Ak to ukladáš do poľa, je zase logické, že ti to vypisuje "Array", pretože v PHP implictné pretypovanie poľa na string vyzerá takto. Ale v tom poli máš správne zoradené (?) všetky hodnoty, ktorými si v cykle prechádzal, čo je správne. Teraz to z toho poľa musíš nejako vytiahnuť, alebo lepšie si podľa jeho hodnôt zoradiť to druhé pole (použitím in_array() v callbacku usort()).
Yuff.3
Profil
Kubo2:
Jasné, pochopil som to aj sám. Ale
podľa jeho hodnôt zoradiť to druhé pole (použitím in_array() v callbacku usort()).
tomuto nerozumiem - usort funkia php je pre mňa novinka. Nemám potuchy ako to zapísať. Niečo som si naštudoval na php.net, ale asi tomu nechápem..
Kubo2
Profil
usort($players, function($left, $right) use($user_id) {
  if(in_array($left['wonid'], $user_id)) {
    if(in_array($right['wonid'], $user_id))
      return 0;  // both admins
    return 1;   // left is admin
  }
  return -1;    // right is admin
});

Ale mám taký neblahý pocit, že som to poradie obrátil, admini budú na konci. Skús si to za domácu úlohu opraviť sám, alebo na výslednom poli použi array_reverse().
mimochodec
Profil
Teď nekomentuju kód Kubo2, protože mu vůbec nerozumím. Napadá mě jedno jednoduché, funkční, velmi, velmi nepěkné řešení. V té větvi, kde jsou řádky 19, 20, se dá jednoduše udělat další dotaz do databáze

"SELECT user_id FROM ".DB_USERS." WHERE admin_multi_fun = ".$servermultifun[$imultifun]["wonid"]

a pro každý z těch případů si to id vytáhnout. Podotýkám, že se v těch id nevyznám, hodlat vyznat nehodlám a jen naznačuju možný postup.
« 1 2 3 »

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0