За последние 24 часа нас посетили 49992 программиста и 1733 робота. Сейчас ищут 752 программиста ...

Рейтинг и работа з базами даных в MySQL

Тема в разделе "PHP для новичков", создана пользователем SerfUA, 14 мар 2014.

  1. SerfUA

    SerfUA Активный пользователь

    С нами с:
    18 фев 2014
    Сообщения:
    75
    Симпатии:
    4
    Всем привет!

    Помогите пожалуйста. У меня не получается сделать рейтинг. Подскажите как можно его хочу про сделать?
    Я короче научился создавать таблицу БД в коде и выводить з БД инфо.
    Но все равно что то не пойму.
    Мне надо создать рейтинг победителей "персонажа 1" и "персонажа 2" ну тоесть кто сколько выиграл.
    Подскажыте может лутше ваще сесиею зделать???

    Вот код моей игры, может он немношко за длинный, но сюда я как бы хочу прикрепить рейтинг победителей , кто сколько раз победил.
    код игры "Угадай число"(на украинском)

    Код (Text):
    1.  
    2. <?session_start()?>
    3. <!--Початок сессії-->
    4. <html>
    5. <head>
    6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    7. <title>Гра вгадай число</title>
    8. </head>
    9. <body>
    10. <?
    11. /*ПІДКЛЮЧИВ БАЗУ ДАНИХ */
    12. $db_host = 'localhost';
    13. $db_user = 'SerfUA';
    14. $db_password = '1234';
    15. $database = 'zavd2';
    16. if ($_POST['reset']){res();}
    17. if (!isset($_SESSION["status"])){
    18.     $_SESSION["status"] = 0;
    19.     // вводимо початкову форму з запитом першого імені
    20.     echo <<<here
    21.     <form method="post">
    22.     <h2>Введіть назву першого гравця</h2>
    23.     <input type="text" name="name1" value="" />
    24.     <input type="submit" value="Відправити" />
    25.     </form>
    26. here;
    27. }
    28. // Умова для першого гравця
    29. if ($_SESSION["status"] == 0 && isset($_POST["name1"])){
    30.     // Якщо не введене імя то ім'я буде дане за замовчуванням
    31.     if (empty($_POST["name1"])) {
    32.         $_SESSION["gamer_1"] = "Empty name 1";
    33.         $_SESSION["status"] = 1;
    34.          }
    35.     // Введене ім'я першого гравця  
    36.     else {
    37.         $_SESSION["gamer_1"] = $_POST["name1"];
    38.         $_SESSION["status"] = 1; }
    39. }
    40. // Реєстрація 2
    41. if ($_SESSION["status"] == 1 && !isset($_POST["name2"])){
    42. // Форма для реєстрація другого гравця
    43.     echo <<<here
    44.             <form method="post">
    45.             <h2>Введіть назву другого гравця</h2>
    46.             <input type="text" name="name2" value="" />
    47.             <input type="submit" value="Відправити" />
    48.             </form>
    49. here;
    50. }
    51. // Умова для назви другого гравця
    52. if ($_SESSION["status"] == 1 && isset($_POST["name2"])){
    53.     // Якщо не введене імя то ім'я буде дане за замовчуванням
    54.     if (empty($_POST["name2"])) {
    55.         $_SESSION["gamer_2"] = "Empty name 2";
    56.         $_SESSION["status"] = 2; }
    57.     // Введене ім'я другого гравця
    58.     else {
    59.         $_SESSION["gamer_2"] = $_POST["name2"];
    60.         $_SESSION["status"] = 2;}
    61. }
    62.  
    63. // Початок гри   
    64. if ($_SESSION["status"] == 2){
    65. $randF = $_POST['rand'];
    66. $dijit = $_POST['dijit'];
    67. $I = $_POST['i'];
    68. logica();       //логические опирации программы
    69. inter();}       //функция хранения данных, т. к мы не используем базы данных.
    70.                 //в данном случае используются скрытые поля hidden.
    71.  
    72. function logica(){
    73. global $dijit, $rand, $randF, $i, $I, $W, $Q;
    74.         if (empty($dijit)) {
    75.             $W=0;
    76.             $Q=0;
    77.             $i = 1;
    78.             $rand = rand(1, 100);
    79.             if($_POST['i']%2==0){echo "Ходить гравець ".$_SESSION["gamer_1"];}
    80.             elseif($_POST['i']%2==1){echo "Ходить гравець ".$_SESSION["gamer_2"];}
    81.             echo "<h1>Введіть число від 1 до 100</h2>";}
    82.         elseif ($dijit > 100 or $dijit < 1) {
    83.             if($_POST['i']%2==0){echo "Ходить гравець ".$_SESSION["gamer_1"];}
    84.             elseif($_POST['i']%2==1){echo "Ходить гравець ".$_SESSION["gamer_2"];}
    85.             echo "<H1>Введите пожалуйста корректные данные!</H1>";}
    86.         elseif ($dijit > $randF) {
    87.             if($_POST['i']%2==0){echo "Ходить гравець ".$_SESSION["gamer_1"];}
    88.             elseif($_POST['i']%2==1){echo "Ходить гравець ".$_SESSION["gamer_2"];}
    89.             echo "<H2>Введене число було за велике</H2>";
    90.             $rand = $randF;
    91.             $I++;
    92.             $i = $I;}
    93.         elseif ($dijit < $randF) {
    94.             if($_POST['i']%2==0){echo "Ходить гравець ".$_SESSION["gamer_1"];}
    95.             elseif($_POST['i']%2==1){echo "Ходить гравець ".$_SESSION["gamer_2"];}
    96.             echo "<H2>Введене число було за мале</H2>";
    97.             $rand = $randF;
    98.             $I++;
    99.             $i = $I;}
    100.         else {
    101.             if($_POST['i']%2==1){$W++;
    102.                 echo "<h1>Вітаю ви вгадали. Переміг гравець ".$_SESSION["gamer_1"].$W." разів</h1>";}
    103.             elseif($_POST['i']%2==0){$Q++;
    104.                 echo "<h1>Вітаю ви вгадали. Переміг гравець ".$_SESSION["gamer_2"].$Q." разів</h1>";}}
    105.             //закрываем цикл if
    106.             }//закрываем функцию logica()
    107. function inter(){
    108. global $digit, $rand, $i, $I;
    109.     echo <<<here
    110.         <form method="post">
    111.         <input type="text"   name="dijit" value="">
    112.         <input type="hidden" name="rand" value = $rand>
    113.         <input type="hidden" name="i" value = $i>
    114.         <input type="submit" name"subm" value="Відправити">
    115.         <br />
    116.         <input type="submit" value="Заново" name="reset"/>
    117.         </form>
    118. here;
    119. }
    120. function res(){
    121. unset($_SESSION["status"], $_SESSION["gamer_2"], $_SESSION["gamer_1"]);  
    122.     }
    123. ?>
    124. </body>
    125. </html>
    Не судите меня строго у меня по-любому много ошибок я только учусь.
    Надеюсь от вас дельные советы которые мне помогут решить мою проблему.
    Если можете скиньте пожалуйста какие-то примеры, это может быть: видео, ссылки или может свои какие-то работы. Вообщем надеюсь на вашу помощь и заранее всем спасибо кто откликнулся.
     
  2. maxycwebber

    maxycwebber Новичок

    С нами с:
    25 мар 2014
    Сообщения:
    263
    Симпатии:
    11
    Адрес:
    Gdansk
    ну во-первых, если хочешь, чтобы к тебе с уважением, как к разработчику - пиши без ошибок.
    во вторых,
    рейтинги можно хранить в сессиях (в твоем случае)
    $_SESSION['user_name']=user_score_count;

    затем просто отсортируй массив по значению и готово - можно подавать
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Число игр = число побед + число поражений ;)
     
  4. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Да ладно тебе, видно же что для человека русский не родной язык.
     
  5. maxycwebber

    maxycwebber Новичок

    С нами с:
    25 мар 2014
    Сообщения:
    263
    Симпатии:
    11
    Адрес:
    Gdansk
    тут каждый третий новичек тогда нерусский