Online hráči - Horda a Aliance - rozdělení
Z WoWResource Wiki
V tomto článku se zaměříme na PHP funkci, která vytáhne informaci o počtu aliačních online hráčů, horde online hráčů a celkový výsledek z databáze.
<?php
$adress = '127.0.0.1';
$user = 'root';
$pass = 'password';
$chardb = 'characters';
function OnlinePlayersCountHorde()
{
global $adress, $user, $pass, $chardb;
$DbSession = mysql_connect($adress, $user, $pass);
mysql_select_db($chardb, $DbSession);
$Query = "SELECT COUNT(*) FROM characters WHERE online = 1 AND race IN (2, 5, 6, 8, 10)";
$DbResult = mysql_query($Query, $DbSession);
$DbRow = mysql_fetch_row($DbResult);
$Count = $DbRow[0];
mysql_free_result($DbResult);
mysql_close();
return($Count);
}
function OnlinePlayersCountAliance()
{
global $adress, $user, $pass, $chardb;
$DbSession = mysql_connect($adress, $user, $pass);
mysql_select_db($chardb, $DbSession);
$Query = "SELECT COUNT(*) FROM characters WHERE online = 1 AND race IN (1, 3, 4, 7, 11)";
$DbResult = mysql_query($Query, $DbSession);
$DbRow = mysql_fetch_row($DbResult);
$Count = $DbRow[0];
mysql_free_result($DbResult);
mysql_close();
return($Count);
}
function OnlinePlayersCountAlianceAndHorde()
{
return OnlinePlayersCountHorde() + OnlinePlayersCountAliance();
}
echo ('<table><tr><td align=\"center\">Aliance</td><td align=\"center\">Horda</td><td align=\"center\">Celkem</td></tr>');
echo ('<tr><th>'.OnlinePlayersCountAliance());
echo ('</th>');
echo ('<th>'.OnlinePlayersCountHorde());
echo ('</th>');
echo ('<th>'.OnlinePlayersCountAlianceAndHorde());
echo ('<th></tr></table>');
?>
Toto je zdrojový kód stránky, který nám vytáhne počet aliančních online hráčů, horde online hráčů a celkový součet všech online hráčů. Následný výstup bude vypadat například takto:
| Aliance | Horda | Celkem |
| 27 | 18 | 45 |
Vysvětlení kódu
Nyní tento kód rozebereme, co znamená co. První 4 řádky jsou konfigurační proměnné. Tvoří se spíše z přehlednosti, jinak by šly samotné informace vložit přímo do kódu bez proměnných.
$DbSession = mysql_connect($adress, $user, $pass); mysql_select_db($chardb, $DbSession);
První řádek zadává příkaz o připojení k MySQL databázi, druhý řádek udává výběr s jakou databází budeme pracovat (mysql_select_db samotně vypadá jako mysql_vyber_databázi).
$Query = "SELECT COUNT(*) FROM characters WHERE online = 1 AND race IN (1, 3, 4, 7, 11)";
Query - Znamená v překladu dotaz, jde tedy o zadání a provedení dotazu na MySQL server pomocí PHP. Následně dostaneme odpověd.
SELECT - Znamená výběr a čtení dat.
COUNT(*) - Říká, že nechceme číst všechny vyhovující řádky, ale zajímá nás pouze jejich počet.
FROM - Určuje z jakou tabulkou se bude pracovat.
WHERE - Upřesňující podmínka, která zužuje výběr dat.
online - Sloupec v tabulce characters.
"1" - Určuje informaci, co má v daném sloupci být, aby byl vybrán. 1 = postava online, 0 = postava offline.
"AND race IN (1, 3, 4, 7, 11)" - Dodatek, který zadává informaci o tom, že ve sloupci RACE má být jedno z čísel 1, 3, 4, 7, 11
V posledních řádcích se už jedná pouze o výpis výsledku funkce.
