代码: <?php //script by Botchal $db_host="127.0.0.1";//хост базы $db_user="botchal";//юзер базы $db_pass="12345";//пароль $db_name="pw";//название базы $db_type="1";//тип, если 1 то MySQL если 2 то MSSQL $table_gms="auth";//таблица гмов $table_gms_td_id="userid";//столбик в таблице гмов с айди $table_online="point";//таблица онлайна $table_online_td_id="uid";//столбик в таблице онлайна с айди $table_online_td_echo="lastlogin";//ещё чтото надо выбрать $table_accounts="users";//таблица аккаунтов $table_accounts_td_id="ID";//столбик в таблице аккаунтов с айди $table_accounts_td_name="name";//столбик в таблице аккаунтов с логином $vivod_teh_kto_off="1";//если 1 то выводить $kolichestvo_iz_vseh="1";//если 1 то выводить $start_gm_online="0";//если приписать то к числу ГМов в онлайне будет прибавляться то что вы приписали if($db_type=="1"){ $db=@mysql_connect($db_host,$db_user,$db_pass) or die("нет конекта, правь конфиг ");$db=@mysql_select_db($db_name,$db) or die("нет такой базы, правь конфиг "); $result1=@mysql_query("select $table_gms_td_id from $table_gms") or die("нет такой таблицы\"".$table_gms."\" или столбика \"".$table_gms_td_id."\", правь конфиг и вообще ты идёш нахуй ");$num_rows1=mysql_num_rows($result1); if($num_rows1!="0"){ while($row1=mysql_fetch_array($result1)){ $userid=$row1['userid']; $result2=mysql_query("select $table_online_td_id,$table_online_td_echo from $table_online where $table_online_td_id='$userid'");$num_rows2=mysql_num_rows($result2); if($num_rows2!="0"){ $result3=mysql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mysql_fetch_array($result3); $name_user=$row3['name']; $start_gm_online=$start_gm_online+1; echo" <font color='green'>GameMaster - ".$name_user." сейчас в игре</font><br> ";// строчка с именем ГМа если он в сети, для диза правте её } if($num_rows2=="0" and $vivod_teh_kto_off=="1"){ $result3=mysql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mysql_fetch_array($result3); $name_user=$row3['name']; echo"<font color='red'>GameMaster - ".$name_user." сейчас не в игре</font><br> ";// строчка с именем ГМа если он НЕ в сети, для диза правте её }} if($kolichestvo_iz_vseh=="1"){ $vse=mysql_num_rows($result1); echo"GM'ов онлайн - ".$start_gm_online." из ".$vse."<br>"; } }else{echo"<font color='red'>GM'ов на сервере нету, вы можете связаться с администрацией для уточнения</font><br> ";} } if($db_type=="1"){ $db=@mssql_connect($db_host,$db_user,$db_pass) or die("нет конекта, правь конфиг ");$db=@mssql_select_db($db_name,$db) or die("нет такой базы, правь конфиг "); $result1=@mssql_query("select $table_gms_td_id from $table_gms") or die("нет такой таблицы\"".$table_gms."\" или столбика \"".$table_gms_td_id."\", правь конфиг и вообще ты идёш нахуй ");$num_rows1=mssql_num_rows($result1); if($num_rows1!="0"){ while($row1=mssql_fetch_array($result1)){ $userid=$row1['userid']; $result2=mssql_query("select $table_online_td_id,$table_online_td_echo from $table_online where $table_online_td_id='$userid'");$num_rows2=mssql_num_rows($result2); if($num_rows2!="0"){ $result3=mssql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mssql_fetch_array($result3); $name_user=$row3['name']; $start_gm_online=$start_gm_online+1; echo" <font color='green'>GameMaster - ".$name_user." сейчас в игре</font><br> ";// строчка с именем ГМа если он в сети, для диза правте её } if($num_rows2=="0" and $vivod_teh_kto_off=="1"){ $result3=mssql_query("select $table_accounts_td_id,$table_accounts_td_name from $table_accounts where $table_accounts_td_id='$userid'");$row3=mssql_fetch_array($result3); $name_user=$row3['name']; echo"<font color='red'>GameMaster - ".$name_user." сейчас не в игре</font><br> ";// строчка с именем ГМа если он НЕ в сети, для диза правте её }} if($kolichestvo_iz_vseh=="1"){ $vse=mssql_num_rows($result1); echo"GM'ов онлайн - ".$start_gm_online." из ".$vse."<br>"; } }else{echo"<font color='red'>GM'ов на сервере нету, вы можете связаться с администрацией для уточнения</font><br> ";} } ?>
代码: Не думаю что это будет работать) т.к. в таблице forbid хранятся баны аккаунтов, а не айди ГМов. Да и алгоритм проверки ГМа далеко не лучший, вот я поражаюсь уже дал готовый SQL запрос, и никто так и не использовал его, изобретают велосипед ну еслиб ты его прокоментировал то может кто-то и начал делать бы php. Но это врятли потому,что те кто просит такой скрипт статуса не пишут php поэтому и просят.Если шарить то хоть доделай
Да что там комментировать? Выполнил запрос да посмотрел результат, плохо что практически нет людей к-е пытаются включить мозг и что-то сделать. Ну держите готовое, раз всё так туго) 代码: <?php $db_host="localhost"; //хост базы $db_user="user"; //юзер базы $db_pass="pass"; //пароль $db_name="pw"; //имя базы (для mssql обычно dbo) $db_type="1"; //тип, если 1 то MySQL если 2 то MSSQL $nik_table="name"; //название поля с логином или ником гма (в таблице users) например truename if($db_type=="1"){ $db=mysql_connect($db_host,$db_user,$db_pass) or die("Ошибка коннекта к базе."); $db=mysql_select_db($db_name,$db) or die("База ".$db_name." не найдена"); $res=mysql_query("SELECT DISTINCT userid, point.zoneid, users.".$nik_table." FROM `auth` LEFT JOIN point ON auth.userid=point.uid LEFT JOIN users ON auth.userid=users.id") or die("Ошибка запроса"); while ($row=mysql_fetch_array($res)){ if ($row['zoneid']==1) { echo '<font color="#00ff00">'.$row[$nik_table].'</font><br>'; // Тут пишем что нужно, если ГМ онлайн. На заметку в переменной $row['userid'] - айди ГМа } else { echo '<font color="#ff0000">'.$row[$nik_table].'</font><br>'; // Тут пишем что нужно, если ГМ оффлайн } } } else { $db=mssql_connect($db_host,$db_user,$db_pass) or die("Ошибка коннекта к базе."); $db=mssql_select_db($db_name,$db) or die("База ".$db_name." не найдена"); $res=mssql_query("SELECT DISTINCT userid, point.zoneid, users.".$nik_table." FROM `auth` LEFT JOIN point ON auth.userid=point.uid LEFT JOIN users ON auth.userid=users.id") or die("Ошибка запроса"); while ($row=mssql_fetch_array($res)){ if ($row['zoneid']==1) { echo '<font color="#00ff00">'.$row[$nik_table].'</font><br>'; // Тут пишем что нужно, если ГМ онлайн. На заметку в переменной $row['userid'] - айди ГМа } else { echo '<font color="#ff0000">'.$row[$nik_table].'</font><br>'; // Тут пишем что нужно, если ГМ оффлайн } } }
Просьба кого либо слить рабочую базу сервера для опытов, попробую компактный скрипт соорудить и легко настраиваемый
Дамп чистых баз... Если что там процедура для добавления ГМов есть. Если хочется наглядного примера call addGM(ID, 1);
Ошибка SQL-запрос: 代码: /*use pw$$*/ CREATE PROCEDURE `acquireuserpasswd` ( IN name1 VARCHAR( 64 ) , out uid1 INTEGER, out passwd1 VARCHAR( 64 ) ) BEGIN SELECT id, passwd INTO uid1, passwd1 FROM users WHERE name = name1; Ответ MySQL: #1064 - 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 7 можешь сделать пустую таблицу с двумя гм'ами?
еще в 2 таблицы: usecashnow и point, 1я это информация о голде, 2я - о его последнем входе в игру Насчет обязательности - хз
мне нужен примерный вид базы с тремя пользователями, двое онлайн один оффлайн. Т.к "абстрактно" кодить я не умею. Собственно и нужна лишь для этого скрипта и его тестирования.
Warning: mssql_query() [function.mssql-query]: message: Line 1: Incorrect syntax near '`'. (severity 15) in /opt/lampp/htdocs/register/statusgm.php on line 24 Warning: mssql_query() [function.mssql-query]: Query failed in /opt/lampp/htdocs/register/statusgm.php on line 24 я там нечего не трогал :О
代码: $res=mysql_query("SELECT DISTINCT userid, point.zoneid, users.".$nik_table." FROM `auth` LEFT JOIN point ON auth.userid=point.uid LEFT JOIN users ON auth.userid=users.id") or die("Ошибка запроса"); Запросы в MSSQL и MySQL идеинтичны, а разве так должно быть?
я в этом не шарю какбе... в чем тут ошибко.... 代码: $res=mssql_query("SELECT DISTINCT userid, point.zoneid, users.".$nik_table." FROM `auth` LEFT JOIN point ON auth.userid=point.uid LEFT JOIN users ON auth.userid=users.id") or die("Ошибка запроса");