« 1 2 3 »
Autor Zpráva
Yuff.3
Profil
if ($exp[$i] == $as)
{echo"kraviny";}
else
{echo"kraviny2";}
kde $exp[$i] obsahuje 1 2 3 4 a $as = 3. Výsledok by mal byť, ak jedno číslo z premennej $exp[$i] = $as - vypíše kraviny. Ak nie vypíše kraviny2. Lenže ono to samozrejme letí takto: Ak prvé číslo z $exp[$i] = $as vypíše kraviny, ak nie kraviny2. Ak druhé číslo = vypíše kraviny ak nie kraviny2 a takto pokračuje so všetkými číslami..
Vie mi niekto pomôcť?

ĎAKUJEM
tiso
Profil
Yuff.3: podľa popísaného chovania máš okolo toho ešte nejaký cyklus. Zruš ho a uprav podmienku na toto:
if (in_array($as, $exp)) {
  echo "kraviny";
} else {
  echo "kraviny2";
}
Yuff.3
Profil
tiso:
vlastne tých cyklov je tam niekoľko. Nie som si istý, či to zvládnem.. Skúsim, keď tak priložím zostávajúci kód - snáď bude ešte ochota pomôcť.
Yuff.3
Profil
Tak som na to prišiel. Ďakujem za pomoc.
mimochodec
Profil
Yuff.3:

  for ($ia = 1; $ia <= $asd; $ia++) {
    if (isset($asd) && $asd != "yxc") {

Proč testuješ $asd uvnitř cyklu, když se v jeho jednotlivých průchodech nemění? A mimochodem, co v něm máš za hodnotu, když ověřuješ, jestli to není "yxc" a o řádek výš to používáš jako číslo?

Jaký je účel toho sáhnutí do databáze, když získaná data nikde nepoužiješ?
No a na co se vlastně ptáš? Nesouvisí to náhodou s tím starším dotazem, kdes psal, že ukládat několik ID do jednoho pole jako text je v pohodě?
Yuff.3
Profil
mimochodec:
Ten kod čo tu bol bol upravený a zosekaný. Čudujem sa, že si vôbec niečo z neho pochopil. V skutočnosti vyzerá trochu ináč.

A áno, prakticky súvisí, ale tentokrát ako som už písal nejde o môj výmysel, ale takto to je definované v systéme ktorý používam, čiže to neviem ovplyvniť. Musel by sa meniť základ a celá štruktúra toho systému..
Každopádne poradil som si s tým - za pomoci tiso, za čo som veľmi vďačný. A ďakujem aj tebe za záujem.
Téma je vyriešená.
Yuff.3
Profil
Vlastne som si len myslel, že je to vyriešené. Nefungovalo to tak ako som chcel.
Prikladám kód..

for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
                  if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV") {
                  
      $resultuser = dbquery("SELECT * FROM ".DB_USERS." ");
    $rows = dbrows($resultuser);
    if ($rows != 0) {
      while ($userdata = dbarray($resultuser)) {
                
                $groups = $userdata['user_groups']; 
                $adminskupina = 4;
                 
    //Toto odstráni bodku 
    $exp = explode( '.' , $groups ); 
    //Toto nahradí xkrát echo "" .$exp;
    //for( $i = 0; $i <= count( $exp ); $i++ ) 
    //{ 
    //if ($exp[$i] == $adminskupina)
    if ($userdata['user_steamid'] == htmlentities($servermultifun[$imultifun]["wonid"]) || in_array($adminskupina, $exp)) 
    { 
    
    echo "<tr align='center'><td><b>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</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>";
    
    }
    
    else 
    { 
    echo "Nevypisuj nič";
    /*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>";  */
    }
    
                
                
                
                }}//}
      }}
      }

//živý odkaz - 4fun

Prakticky mi ide o to, že ak je na webe uvedený člen ako admin a teda splní podmienky, tak bude zvýraznený v tej tabuľke.
Yuff.3
Profil
O5 po sérii neúspešných pokusov som skúsil celý kód spraviť nanovo - vyšlo mi z toho niečo takéto, ale píše mi syntax chybu a netuším prečo.
$result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_steamid=".htmlentities($servermultifun[$imultifun]["wonid"])." ");
              
              echo"".$result['user_groups'];
    
    $groups = $data['user_groups']; 
    $adminskupina = 4;

    $exp = explode( '.' , $groups ); 

    if(in_array($adminskupina, $exp))
    {
       for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
                  if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV") {

    echo "<tr align='center'><td><b>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</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>";
    
    }}}
      
    else 
    {
    
    for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
                  if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV") {
     
    //echo "Nevypisuj nič";
    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>";  

    }}}

chyba je You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Ďakujem
lionel messi
Profil
Yuff.3:
Nedostane sa ti do premennej $servermultifun[$imultifun]["wonid"] nejakým spôsobom apostrof? Keďže ide o id, kt. je podľa všetkého číselné, navrhujem nepoužívať funkciu htmlentities, ale intval, ktorá pretypuje vstup na číslo (ak to náhodou nemáš vyššie v kóde).
Yuff.3
Profil
lionel messi:
akoby sa tam mohol dostať apostrof? Netuším ako, ale pravdepodobne dostal. Lebo keď som zmenil select na

$result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_steamid=".intval($servermultifun[$imultifun]["wonid"])." ");
      if($result) {
              echo"".$result['user_groups'];
a pridal podmienku $result celé to dal do cyklu, tak chyba o syntaxy zmizla.

Ale samozrejme to nefunguje. Nevypíše mi nič. Ani to echo user_groups ani riadok v tabuľke: name, frag, time ping wonid..

Napadlo mi, či netreba túto podmienku: if(in_array($adminskupina, $exp)) pridať do podmienky pod "for" cyklom -> if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV" !!!&& napr. sem ????!!!) {

Ale všetko je pasé, pokiaľ mi nič nevypíše to prvé echo za selectom -> echo"".$result['user_groups'];

Kde môže byť chyba?


Skúsim som to ešte takto celé zmeniť
for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
      $result = dbquery("SELECT * FROM ".DB_USERS." WHERE user_steamid=".intval($servermultifun[$imultifun]["wonid"])." ");
      if($result) {
              echo"".$result['user_groups'];
    
    $groups = $result['user_groups']; 
    $adminskupina = 4;

    $exp = explode( '.' , $groups ); 

    //if(in_array($adminskupina, $exp))
    //{
       //for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
                  if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV" && in_array($adminskupina, $exp)) {

    echo "<tr align='center'><td><b>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</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>";
    
    }}//}
         //}
    else 
    {
    
    //for ($imultifun = 1; $imultifun <= $servermultifun["activeplayers"]; $imultifun++) {
                  if (isset($servermultifun[$imultifun]) && $servermultifun[$imultifun]["wonid"] != "HLTV") {
     
    echo "Nevypisuj nič";
    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>";  

    }}//}
  
      }
Fisir
Profil
Reaguji na Yuff.3:
Vypiš si, co obsahuje proměnná $servermultifun[$imultifun]["wonid"] a potom spusť ten dotaz s její hodnotou ve správci MySQL databází (phpMyAdmin, Adminer) a zkontroluj, zda vrací to, co čekáš.
Yuff.3
Profil
Zasa som celý kód zmenil. Zatiaľ vyzerá, že všetko ide ako má, až na select
$result = dbquery("SELECT * FROM ".DB_USERS." ");
      if($result) {
              echo"".$result['user_steamid'];
              echo"".$result['user_groups'];

Fisir:
áno, bola v tom chyba, ->
lionel messi:
navrhujem nepoužívať funkciu htmlentities, ale intval“ -> htmlentities je v tomto prípade schodné.

Už len vyriešiť ten select. Nič mi tie echá nevypíšu.
lionel messi
Profil
Yuff.3:
Už len vyriešiť ten select. Nič mi tie echá nevypíšu.
Čo je v skutočnosti obsahom konštanty DB_USERS — var_dump(DB_USERS);?
Yuff.3
Profil
lionel messi:
to je zvláštne - vypíše to: string(22) "PREFIX_TABULKY_users" -> malo by to vypísať obsah celej tabuľky users pokiaľ sa nemýlim..
Ako je to možné, že tuto tomu tak nie je, ale kdekoľvek inde použijem tento select, vráti mi to čo má?
Fisir
Profil
Reaguji na Yuff.3:
malo by to vypísať obsah celej tabuľky users pokiaľ sa nemýlim
Takže to zopakuji – nauč se PHP a MySQL, protože brzy všechny přestane bavit ti radit. Je zřejmé, že opět absolutně netušíš o co jde, a myslím, že tvé předchozí argumenty stylu „jenom tenhle projekt a už to nikdy nebudu potřebovat, tak to udělejte za mne“ padly, protože ten projekt stále rozšiřuješ.

Nič mi tie echá nevypíšu.
A provedou se vůbec? Nahraď za:
$result = dbquery("SELECT * FROM ".DB_USERS." ");
      if($result) {
      echo('prase');
Yuff.3
Profil
Fisir:
učím sa stále.
Čo znamená či sa prevedú? Proste to nič nevypíše. Tvoj pokus mi vypíše "prase".
Skúšal som aj niečo takéto, prakticky potrebujem tú podmienku in_array - teda ak j v poly to čo potrebujem, tak pokračujeme ak nie vypíše else..

$result = mysql_query("SELECT user_steamid, user_groups FROM ".DB_USERS." ");
                     while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
                     printf("ID: %s  Name: %s", $row["user_steamid"], $row["user_groups"]);
                     $sti = "STEAM_0:1:31973687"; 
                     if (in_array($row["user_steamid"]) == $sti){echo "volačo takéto??";} else {echo"nič nič nič";}



v podstate to čo je v printf čo mi vypíšu tie premenné by som potreboval dostať do normálnych premenných, aby som to mohol porovnať, resp. použiť v tej podmienke.


Neviem či som pochopil správne, ale vyčítal som, že treba použiť funkciu foreach.

Môj aktuálny kód teda vyzerá takto:
$result = mysql_query("SELECT user_steamid, user_groups FROM ".DB_USERS." ");
                     while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
                     foreach ($row as $tuning) {
                     echo"".$tuning;
                     $sti = "STEAM_0:1:31973687"; 
                     if (in_array($tuning) == $sti){echo "volačo takéto??";} else {echo" nie ";}
                     }
Ale samozrejme nefunguje to akoby som chcel. Tá podmienka sa tvári že nie je splnená a vypíše else echo..
Tomáš123
Profil
Yuff.3:
Keď si v manuáli naštuduješ funkciu in_array zistíš, že ti tam chýba druhý parameter. Ale chyba nie je len v tomto... Zápis if (in_array($tuning) == $sti) je hlúposť. Funkcia in-array vracia true alebo false. Nemôžeš návratovú hodnotu porovnávať s inou premennou. Ak chceš zistiť, či sa v poli nachádza premenná $sti, uveď ju ako prvý parameter.
pcmanik
Profil
Tomáš123:
Nemôžeš návratovú hodnotu porovnávať s inou premennou.
Prečo by nemohol?
Tomáš123
Profil
pcmanik:
Prečo by nemohol?
Zle som sa vyjadril. Mohol by, ale ak by daná premenná mala inú hodnotu ako true, podmienka by sa vyhodnotila ako false.
Kubo2
Profil
Tomáš123:
Nie, nevyhodnotila, pretože pri použití operátoru porovnania by došlo k pretypovaniu.
mimochodec
Profil
Kubo2:
Nie, nevyhodnotila, pretože pri použití operátoru porovnania by došlo k pretypovaniu.

A co třeba takhle? Yuff.3 samozřejmě může porovnávat co chce, může používat i další funkce jinak, než jak jsou zamýšleny, ale určitě dostane výsledek, který neodpovídá tomu, co by si představoval. Za sebe můžu říct, že jsem se ztratil někde kolem #4, ještě když tam byl kód. Jen tak nějak tuším, že kdyby Yuff.3 zapracoval za základních dovednostech a potom na vyjadřovacích schopnostech, mohl mít už dávno vyřešeno.
Každopádně teď bych doporučil přečíst a pochopit #2.
Yuff.3
Profil
mimochodec:
zapracoval za základních dovednostech a potom na vyjadřovacích schopnostech, mohl mít už dávno vyřešeno.
pracujem, pracujem, snažím sa.

Za sebe můžu říct, že jsem se ztratil někde kolem #4, ještě když tam byl kód.
->
Yuff.3:
Zasa som celý kód zmenil.

ale určitě dostane výsledek, který neodpovídá tomu, co by si představoval.
prečo si to myslíš?

Každopádně teď bych doporučil přečíst a pochopit #2.
stalo sa- prečítal a chápem správne že narážaš na ten cyklus? Ako to mám ale ináč zapísať? Tým foreach cyklom to prebehnúť musí, ak to postavím mimo, stratím tým premennú, ktorú potrebujem, nie?

Tomáš123:
Zápis if (in_array($tuning) == $sti) je hlúposť
samozrejme, nevšimol som si tej zátvorky..

Aktuálne kód vyzerá takto:
$result = mysql_query("SELECT user_steamid, user_groups FROM ".DB_USERS." ");
                     while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
                     foreach ($row as $tuning) {
                     echo"".$tuning;
                     $sti = "STEAM_0:1:31973687"; 
                     if (in_array($sti == $tuning)){echo "volačo takéto??";} else {echo" niečo ";}
                     }
lionel messi
Profil
Yuff.3:
Ešte raz, funkcia in_array prijíma v prvom argumente hľadaný výraz a v druhom pole, oprav si podľa toho zápis na riadku 6.
Yuff.3
Profil
lionel messi:
Chceš povedať, že namiesto $sti mám dať priamo - STEAM_0:1:31973687 ? Ale táto premenná tam byť musí - resp. bude sa meniť, toto je len začiatok toho kodu..
Tomáš123
Profil
Yuff.3:
samozrejme, nevšimol som si tej zátvorky..
To ani ja.

Máš problémy s angličtinou? Ak nie, prečítaj si manuál [#23] lionel messi.
lionel messi
Profil
Yuff.3:
Chceš povedať, že namiesto $sti mám dať priamo - STEAM_0:1:31973687 ?
Myslím si, že lepšie by fungovalo jednoduché:
if ($sti == $tuning) {
  echo "voľačo takéto";
}
else {
  echo "niečo";
}
Yuff.3
Profil
$ano = "1";
$result = dbquery("SELECT * FROM ".DB_USERS." WHERE admin_multi_fun='".$ano."' ");
$rows = dbrows($result);
if ($rows != 0) {
    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>";
                echo htmlentities($servermultifun[$imultifun]["name"]);
                echo "</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>";

    }
    else 
    {

    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 - znova som to celé zmenil, takto mi to funguje takmer presne tak ako potrebujem, ibaže keď sú na servery 2 admini, tak obehne ten cyklus 2x.
Jak to mám zmeniť, aby cyklus prešiel vždy len raz- aj keď tam bude 1 admin alebo 8?
Fisir
Profil
Reaguji na Yuff.3:
Zruš ten while cyklus. (A abych předešel další zbytečné otázce, nezapomeň deklarovat proměnnou $userdata = dbarray($result);.)
Yuff.3
Profil
Fisir:
viem, no spýtať sa musím aj tak. Ako presne ju mám deklarovať? Ospravedlňujem sa za zrejme triviálne otázky..
Fisir
Profil
Reaguji na Yuff.3:
Ako presne ju mám deklarovať?
Snažil jsem se této otázce předejít tím, že ti napíši, jak se deklaruje rovnou v [#28]. Nezabralo, zdá se.
« 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