|
YemSalat
| Дата: Суббота, 12.06.2010, 15:56 | Сообщение # 1 |
Хрен заткнешь
Группа: Проверенные
Сообщений: 385
Статус: Offline
|
Здравствуйте друзья, недавно до меня дошло, что $_GET[] переменные можно передавать через ГМ, без всяких длл, используя исключительно функцию execute_shell() Решил сделать пример создания онлайн таблицы рекордов Вам потребуется: - Хост с поддержкой php и MySQL (есть бесплатные варианты)
- Самые базовые знания верстки htm страниц, для "тюнинга" вашей таблицы
И так, создаем новую таблицу (для примера test_mysql) с полями name и score в базе данных, используя следующий SQL зарос: Code CREATE TABLE `*имя вашей БД*`.`test_mysql` ( `name` varchar( 32 ) NOT NULL , `score` int( 11 ) NOT NULL ) Отлично, готова таблица в БД, теперь создаем php скрипт, который будет работать с этой таблицей: Code <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=WINDOWS-1251'>
<title>Testing highscore..</title> </head> <body>
<h1 align=center>Тестируем рекорды..</h1> <p align=center><a href='highscore.php'><img src='sp_base.png'></a><br> <br>
<?php //Чтобы скрипт добавл или обновил информацию об игроке, запусите его вот таким образом:highscore.php?action=set&name=putnamehere&score=scorehere
//сначала подключаемся к БД $host = "localhost"; $user = "yemsalat"; $pass = "*****"; $scores_db = "testingphp";
$connect=mysql_connect ($host,$user,$pass) or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db ($scores_db);
//создадим переменные из тех что были приняты, чтобы было проще к ним обращаться $score=$_GET["score"]; $name=$_GET["name"];
$action=$_GET["action"];
//эта функция добавляет или обновляет игрока в таблице function modify_table() { //сначало находим ряд в котором имя = заданному игроком имени $query = "SELECT * FROM test_mysql WHERE name='".$_GET["name"]."'"; $res = mysql_query($query) or die("Couldn't execute $query: ".mysql_error()); //если такого ряда нет - значит игрока еще нет в БД, если есть, значит игрок уже был туда внесен if (mysql_num_rows($res)==0) { //игрока нет - создаем новый ряд с его именем и очками $query = "INSERT INTO test_mysql VALUES('".$_GET["name"]."',".$_GET["score"].")"; mysql_query($query) or die("Couldn't execute $query: ".mysql_error()); } //игрок есть - обновляем его результат, если он выше чем тот который записан else { $checker = mysql_fetch_assoc($res); if ($checker[score]<$_GET[score]) {//обновляем результат $query = "UPDATE test_mysql SET score=".$_GET["score"]." WHERE name='".$_GET["name"]."'"; mysql_query($query) or die("Couldn't execute $query: ".mysql_error());} } header("Location: http://yemsalat.org/test/highscore.php?curname=$_GET[name]"); exit; }
function show_top() { //этой функцией мы выбираем первые 50 рядов по возрастанию очков $query = "SELECT name, score FROM test_mysql ORDER BY score DESC LIMIT 50"; $res = mysql_query($query) or die("Couldn't execute query: ".mysql_error()); //дальнейший код создает html таблицу с результатами echo " <table align=center border=1> <tr> <td align='center'> <b>#</b> </td><td align='center'> <b>Имя</b> </td> <td align='center'> <b>Очки</b> </td> </tr> "; {$rating=0;} while ($user = mysql_fetch_assoc($res)) { $user[name]=htmlspecialchars($user[name]); $user[score]=htmlspecialchars($user[score]); $rating++; echo "<tr> <td align='center'> ".$rating." </td>"; //выделяем выбранное имя зеленым фоном (если задана переменная $_GET[curname]) if($_GET[curname]!=$user[name]) { echo"<td align='center'>";} else {echo"<td align='center' bgcolor=#adff2f>";}
echo"".$user["name"]." </td> <td align='center'> ".$user["score"]." </td> </tr>"; } echo "</table>"; }
//свитч следит за тем какую функцию надо выполнить switch ($action) { case "set": modify_table(); break; case "top": show_top(); break; default: show_top(); break; }
//закрыть соединение, это очень важно! mysql_close(); ?>
</body> </html> Дальше, уже в ГМ, нам осталось только обратиться к странице на которой расположен php скрипт при помощи функции execute_shell() Все комментарии по ней - в примере. СКАЧАТЬ ПРИМЕР Получается вот такая таблица
Мои игры: LaLaLaLAMA - игра не про Ламу GoMommy! - Invaders Must Die !! [Caption Game] - игра в заголовке CombatForce - долгожданный релиз А мою аватарку можно поменять
Сообщение отредактировал YemSalat - Суббота, 12.06.2010, 17:16 |
| |
| |