За последние 24 часа нас посетили 22456 программистов и 1146 роботов. Сейчас ищут 607 программистов ...

wap-игра, проблема бд+php

Тема в разделе "PHP и базы данных", создана пользователем bobinete, 13 апр 2019.

Метки:
  1. bobinete

    bobinete Новичок

    С нами с:
    13 апр 2019
    Сообщения:
    2
    Симпатии:
    0
    Будем знакомиться, уважаемые жители форума :)
    Приступим сразу к сути вопроса. Есть WAP - игра, в ней присутствуют так сказать клановые задания, php и обращения к таблицам БД, НО не все гладко, не понимаю в чем причина неработоспособности скрипта.[​IMG]
    Нет прогресса выполнения задания. Буду очень благодарен в указании направления работы.

    PHP:
    1. case 'task'://Клановые задания
    2. $title = 'Задания фракции ';  
    3. include './system/h.php';  
    4. echo '<div class="title">'.$title.'</div>';
    5.   $memb = mysql_query('SELECT * FROM `clan_memb` WHERE `user` = "'.$user['id'].'"');
    6.   $memb = mysql_fetch_array($memb);
    7.  
    8. echo'<div class="empty_block">
    9. <table width="100%" border="0" cellpadding="0" cellspacing="0" style="padding-top: 5px;">
    10. <tbody><tr><td width="25%">
    11. <center><img src="/images/ico/task/clan_task.png" alt="*" width="72"/></center>
    12. </td>
    13. <td width="75%">
    14. <font color="#fff">Выполняй задания и добывай алмазы для фракции </font></br>
    15. Собрано алмазов: 68
    16. </td>
    17. </tr></tbody>
    18. </table>
    19. </div><div class="line"></div>';
    20.  
    21. ////////////////////////////// Обновление новых квестов////////////////////////////
    22. //Добавляем только ежеднемные задания
    23. $req_task = mysql_query ('select * from `clan_task_user` WHERE (`clan`="'.$memb['clan'].'") AND (`complete`="0")');
    24. if (mysql_num_rows ($req_task) < 10) {
    25.     // Обновление квестов
    26. $req_task = mysql_query ('select * from `clan_task` ');
    27. $i_task = 0;
    28. while ($task__ = mysql_fetch_array ($req_task)) {
    29. $q_task = mysql_query ('SELECT * FROM `clan_task_user` WHERE (`clan`="'.$memb['clan'].'") AND (`task`="'.$task__['id'].'") ');
    30. if (mysql_num_rows ($q_task)==0) {
    31. $i_task++;
    32. if ($i_task <10) {
    33. mysql_query ('INSERT INTO `clan_task_user` (`clan`, `task`) VALUES ("'.$memb['clan'].'", "'.$task__['id'].'") ');
    34. }}}
    35. }
    36. ////////////////////////////////////////////////////////////////////////
    37.  
    38. // Обновление неактивных квестов
    39. $req = mysql_query ('select * from `clan_task_user` WHERE (`clan`="'.$memb['clan'].'") AND (`complete`="1") ');
    40. if (mysql_num_rows ($req) < 10) {
    41.     $i = 0;
    42.     while ($clan_task_user = mysql_fetch_array ($req)) {
    43.        
    44.   if ($clan_task_user['time']<time ()) {
    45. $i++;
    46. if ($i < 10) {
    47. mysql_query ('UPDATE `clan_task_user` SET `complete`="0",`how`="0" WHERE (`clan`="'.$memb['clan'].'") AND (`task`="'.$clan_task_user['task'].'") ');
    48.    }
    49.   }  
    50. }
    51. }
    52.  
    53.  
    54.  
    55.  
    56.   $id = _string(_num($_GET['task'])); //Оприделяем какое задание
    57. $clan_task = mysql_fetch_array(mysql_query ('SELECT * FROM `clan_task` WHERE (`id`="'.$id.'")'));
    58. $clan_task_user = mysql_fetch_array(mysql_query ('SELECT * FROM `clan_task_user` WHERE (`clan`="'.$memb['clan'].'") AND (`task`="'.$clan_task['id'].'")'));
    59.  
    60.   if($id){
    61.       if($clan_task_user['user'] == 0){
    62. mysql_query ('UPDATE `clan_task_user` SET `user`="'.$user['id'].'", `time_task`="'.(time()+60*60*40).'" WHERE (`clan`="'.$memb['clan'].'") AND (`task`="'.$id.'")');
    63.       }elseif($clan_task_user['user_2'] == 0){
    64. mysql_query ('UPDATE `clan_task_user` SET `user_2`="'.$user['id'].'" WHERE (`clan`="'.$memb['clan'].'") AND (`task`="'.$id.'") ');
    65.       }
    66.  
    67.  
    68. header('location: /clan/task');
    69. }
    70.  
    71.  
    72.  
    73. // Список невыполненных заданий
    74. $req = mysql_query ('select * from `clan_task_user` WHERE (`clan`="'.$memb['clan'].'") AND (`complete`="0") ORDER BY `id` ASC');
    75. if (mysql_num_rows ($req) == 0) {
    76.     echo 'mkj';//Пишем, что нет заданий
    77. }else{
    78.     while ($clan_task_user = mysql_fetch_array ($req)) {      
    79.         $clan_task = mysql_fetch_array(mysql_query ('SELECT * FROM `clan_task` WHERE (`id`="'.$clan_task_user['task'].'")'));
    80.      
    81. echo '<div class="empty_block">
    82. <font color="#fff"> <img src="/images/ico/png/task.png" width="18"> '.$clan_task['name'].'</font><br/>
    83. <font color="#90b0c0">';
    84.   if ($clan_task_user['how']>=$clan_task['how']) {
    85.     echo '  <img src="/images/ico/png/gold.png" alt="*" width="16"/> '.$clan_task['_gold'].'
    86.            <img src="/images/ico/png/silver.png" alt="*" width="16"/> '.$clan_task['_silver'].'
    87.            <img src="/images/ico/png/exp.png" alt="*" width="16"/> '.$clan_task['_exp'].' </br>';
    88. }
    89. echo'Прогресс: '.$clan_task_user['how'].' из '.$clan_task['how'].' </font><br/>';  
    90. if($clan_task_user['user'] != 0){ echo' '.nick($clan_task_user['user']).' ';}
    91. if($clan_task_user['user_2'] != 0){ echo' '.nick($clan_task_user['user_2']).' ';}
    92. if($clan_task_user['time_task'] != 0){ echo' </br> Осталось: '._time($clan_task_user['time_task']-time()).' ';}
    93.  
    94.  
    95.   if ($clan_task_user['how']>=$clan_task['how']) {
    96. echo '<center><a href="/task?complete='.$clan_task['id'].'"> <input class="button" type="submit" value="Забрать награду"/></a></center>';    
    97. }elseif($clan_task_user['user'] == 0){
    98.     if(mysql_result(mysql_query('SELECT COUNT(*) FROM `clan_task_user` WHERE `clan` = "'.$memb['clan'].'" AND `user` = "'.$user['id'].'" OR `user_2` = "'.$user['id'].'"'),0) == 0){
    99. echo'<form action="/clan/task?task='.$clan_task_user['task'].'" method="post">
    100. <center><input class="button" type="submit" value="Выполнить"/></center>
    101. </form>';  
    102.     }
    103. }elseif($clan_task_user['user_2'] == 0 AND $clan_task_user['user'] != $user['id']){
    104.     if(mysql_result(mysql_query('SELECT COUNT(*) FROM `clan_task_user` WHERE `clan` = "'.$memb['clan'].'" AND `user` = "'.$user['id'].'" OR `user_2` = "'.$user['id'].'"'),0) == 0){
    105. echo'<form action="/clan/task?task='.$clan_task_user['task'].'" method="post">
    106. <center><input class="button" type="submit" value="Помочь с заданием"/></center>
    107. </form>';
    108.     }  
    109. }
    110. echo '</div>
    111. <div class="line"></div>';
    112.     }
    113. }
    114.  
    115.  
    116. // Список выполненных задани
    117. $req = mysql_query ('select * from `clan_task_user` WHERE (`clan`="'.$memb['clan'].'") AND (`complete`="1") ');
    118. if (mysql_num_rows ($req) != 0) {
    119.  
    120.     while ($clan_task_user = mysql_fetch_array ($req)) {
    121.         $clan_task = mysql_fetch_array(mysql_query ('SELECT * FROM `clan_task` WHERE (`id`="'.$clan_task_user['task'].'")'));
    122.            
    123. echo '
    124. <div class="empty_block"> '.$clan_task['name'].' </span><br/>
    125. Будет доступно через: '._time($clan_task_user['time']-time()).' </div>
    126. <div class="line"></div>';
    127.    }
    128. }
    129. echo' <div class="empty_block item_center">
    130. <font color="#90b0c0">За каждое выполненное задание фракция получает от 1 до 10 алмазов (случайно), а герой золото и серебро в награду
    131. Подробнее </font><a href="/task/dailyInfo"><font color="#fff">здесь</font></a>
    132. </div><div class="line"></div>';
    133.  
    134.  
    135. echo'<div class="block_link"><a href="/clan"><img src="/images/ico/png/back.png" alt="*"/> Назад во фракцию </a></div>
    136. <div class="line"></div>';
    137. include './system/f.php';
    138. break;
     
  2. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Игру писал человек который совершенно не умеет работать с БД. И судя по устаревшему mysql_ писал достаточно давно.
    @bobinete, я так понимаю вы фрилансер который подрядился подшаманить код игры. Вряд ли кто-то на форуме будет работать за вас бесплатно
     
  3. bobinete

    bobinete Новичок

    С нами с:
    13 апр 2019
    Сообщения:
    2
    Симпатии:
    0
    Я делаю это исключительно для себя, проект не мой,но я выкупил его
     
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    небось пирамида какая-то
     
  5. acho

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

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    опять подумать забыл перед ответом?
     
  6. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    615
    Симпатии:
    24
    тут автору нужно понимать, что для того, чтобы в модуле всего лишь вывода прогресса выполнения заданий, нужно ВО ВСЕХ остальных модулях, где эти задания выполняются, заполнять БД для них :)

    то есть, если автор взялся фрилансить 1 модуль за 20 рублей, то на самом деле ему нужно отредачить 5 модулей:

    1. В модуле Арена запрос при каждой победе +1 для задания побед над противниками.
    2. В модуле Босс запрос при каждом бое на +1 для задания проведенных боёв с Боссом.
    3. В модуле набегов запрос на +1 если была заявка и участие в набеге для задания Набег.
    4. В модуле Тренировка запрос на +1 при каждом повышении одного из скилов для задания по тренировке.
    5. В модуле Кузница запрос на +1 при каждом разборе для задания по разборке.

    :)

    Тогда и прогресс будет виден в шестой локации - Задания.
     
    #6 Вероломство, 27 апр 2019
    Последнее редактирование: 27 апр 2019