Разобраться в скрипте

Тема в разделе "PHP", создана пользователем Squoll2, 24 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Squoll2

    Squoll2 Постоялец

    Регистр.:
    2 июн 2009
    Сообщения:
    80
    Симпатии:
    15
    помогите разобраться в скрипте вот 2 файла
    PHP:
    <?
    include 
    'dbcon.php';
    include 
    'classes.php';
    include 
    'antisql.php';
    $resultgrow mysql_query("SELECT * FROM `growing`");
    while(
    $line mysql_fetch_array($resultgrowMYSQL_ASSOC)) {
        
    $lost floor(rand(0$line['amount'] * 5));
        if (
    $lost != 0){
            
    $newamount $line['cropamount'] - $lost;
            
    Send_Event($line['userid'], $lost." of your ".$line['croptype']." plants have died. Crop ID:".$line['id']);
        }
        
    $resultgrowupdate mysql_query("UPDATE `growing` SET `cropamount` = '".$newamount."' WHERE `id` = '".$line['id']."'");
    }
    //delete rows that are empty and give back land to owner
    $resultgrow mysql_query("SELECT * FROM `growing`");
    while(
    $line mysql_fetch_array($resultgrowMYSQL_ASSOC)) {
        if (
    $line['cropamount'] == 0){
            
    Give_Land($line['cityid'], $line['userid'], $line['amount']);
            
    $result mysql_query("DELETE FROM `growing` WHERE `id`='".$line['id']."'");
        }
    }
    //$result2 = mysql_query("DELETE FROM `spylog` WHERE `age` < ".time() - 172800);// clear out old spy log stuff
    $deletechat mysql_query("DELETE FROM `message`");
    // Lottery Stuff
    $checklotto mysql_query("SELECT * FROM `lottery`");
    $numlotto mysql_num_rows($checklotto);
    $amountlotto $numlotto 750;
    $offset_result mysql_query" SELECT FLOOR(RAND() * COUNT(*)) AS `offset` FROM `lottery` ");
    $offset_row mysql_fetch_object$offset_result );
    $offset $offset_row->offset;
    $result mysql_query" SELECT * FROM `lottery` LIMIT $offset, 1 " );
    $worked mysql_fetch_array($result);
    $winner $worked['userid'];
    $lottery_user = new User($worked['userid']);
    $newmoney $lottery_user->money $amountlotto;;
    Send_Event($lottery_user->id"You won the lottery! Congratulations, you won $".$amountlotto);
    $result2 mysql_query("UPDATE `grpgusers` SET `money` = '".$newmoney."' WHERE `id` = '".$lottery_user->id."'");
    $result2 mysql_query("DELETE FROM `lottery`");
    // Lottery Stuff
    $result mysql_query("SELECT * FROM `grpgusers`");
    while(
    $line mysql_fetch_assoc($result)) {
        
    $updates_user = new User($line['id']);
        
    $newmoney $updates_user->money;
        
    $username $updates_user->username;
        
    $newrmdays $updates_user->rmdays 1;
        
    $newrmdays = ($newrmdays 0) ? $newrmdays;
        if(
    $newrmdays 1) {
            
    $interest .04;
        } else {
            
    $interest .02;
        }
        
    $newbank ceil($updates_user->bank + ($updates_user->bank $interest));
        if(
    $updates_user->job != 0){
            
    $result_job mysql_query("SELECT * FROM `jobs` WHERE `id`='".$updates_user->job."'");
            
    $worked_job mysql_fetch_array($result_job);
            
    $newmoney $newmoney $worked_job['money'];
            
    Send_Event($updates_user->id"You earned $".$worked_job['money']." from your job. You now have $".$newmoney);
        }
        
    // hooker stuff
        
    if($updates_user->hookers 0){
            
    $newmoney $newmoney + (300 $updates_user->hookers);
            
    Send_Event($updates_user->id"You earned $".($updates_user->hookers 300)." from your hookers. You now have $".$newmoney);
        }
        
    //hooker stuff
        
    $result2 mysql_query("UPDATE `grpgusers` SET `money` = '".$newmoney."', `rmdays` = '".$newrmdays."', `bank` = '".$newbank."', `searchdowntown` = '100' WHERE `username` = '".$username."'");
    }
    ?>
    PHP:
    <?
    include 
    'header.php';
    include 
    'antisql.php';
    if (
    $_GET['harvest']){
        
    $result mysql_query("SELECT * FROM `growing` WHERE `id`='".$_GET['harvest']."'");
        
    $worked mysql_fetch_array($result);
        
    $error = ($user_class->id != $worked['userid']) ? "Вы невладелец этого растения." $error;
        
    $error = ($worked['timedone'] > time()) ? "Это растение ещё невыросло." $error;
        if (isset(
    $error)){
            echo 
    Message($error);
            include 
    'footer.php';
            die();
        }
        
    $newpot $user_class->marijuana $worked['cropamount'];
        
    $result mysql_query("UPDATE `grpgusers` SET `marijuana` = '".$newpot."' WHERE `id`='".$user_class->id."'");
        
    Give_Land($worked['cityid'], $worked['userid'], $worked['amount']);
        
    $user_class = new User($_SESSION['id']);
        
    $result2mysql_query("DELETE FROM `growing` WHERE `id`='".$_GET['harvest']."'");
        echo 
    Message("Вы получили ".$worked['cropamount']." растений марихуаны.");
    }
    if (
    $_POST['plant']){
        
    $result mysql_query("SELECT * FROM `land` WHERE `city`='".$user_class->city."' AND `userid`='".$user_class->id."'");
        
    $worked mysql_fetch_array($result);
         
    $newlandtotal $worked['amount'] - $_POST['amount'];
         
    $currentland Check_Land($user_class->city$user_class->id);
        
    $error = ($_POST['amount'] > $worked['amount']) ? "У вас недостаточно земли для стольких семян." $error;
        
    $error = ($_POST['amount'] < 1) ? "Пожалуйста введите правильное число." $error;
        
    $error = (($_POST['amount'] * 100) > $user_class->potseeds) ? "У вас нехватает семян. Разрешено 100 семян на одни акр земли." $error;
        if (isset(
    $error)){
            echo 
    Message($error);
            include 
    'footer.php';
            die();
        }
    $resultmysql_query("INSERT INTO `growing` (`userid`, `cityid`, `amount`, `croptype`, `cropamount`, `timeplanted`, `timedone`)"."VALUES ('".$user_class->id."', '".$user_class->city."', '".$_POST['amount']."', 'pot', '".($_POST['amount'] * 100)."', ".time().", '".(time() + 604800)."')");
        
    $newland $worked['amount'] - $_POST['amount'];
        
    $newpotseeds $user_class->potseeds - ($_POST['amount'] * 100);
        
    $result mysql_query("UPDATE `grpgusers` SET `potseeds` = '".$newpotseeds."' WHERE `id`='".$user_class->id."'");
        
    Take_Land($user_class->city$user_class->id$_POST['amount']);
        
    $user_class = new User($_SESSION['id']);
        echo 
    Message("Вы посадили ".$_POST['amount']." акров марихуаны.");
    }
    ?>
    <tr><td class="contenthead">Управление землёй</td></tr>
    <tr><td class="contentcontent">
    Здесь вы можете управлять своей землёй.
    </td></tr>
    <?
    $result = mysql_query("SELECT * FROM `land` WHERE `city`='".$user_class->city."' AND `userid`='".$user_class->id."'");
    $worked = mysql_fetch_array($result);
    echo '<tr><td class="contenthead">Посадить</td></tr>';
    echo '<tr><td class="contentcontent">';
    if ($worked['amount'] > 0){
        echo 'У вас '.$worked['amount'].' aкров земли в '.$user_class->cityname.' and '.$user_class->potseeds.' семян марихуаны, их хватает для посадки '.floor($user_class->potseeds / 100).' акров марихуаны.';
    ?>
    <form method='post'><input type='text' name='amount' size='3' maxlength='20'> Acres <input type='submit' name='plant' value='Посадить семена'></post>
    <?
    } else {
        echo "У вас нету земли в этом городе.";
    }
    echo '</td></tr>';
    $result = mysql_query("SELECT * FROM `growing` WHERE `cityid`='".$user_class->city."' AND `userid`='".$user_class->id."'");
    $worked = mysql_fetch_array($result);
    echo '<tr><td class="contenthead">На данный момент растёт</td></tr>';
    echo '<tr><td class="contentcontent">';
    if ($worked['amount'] > 0){
        echo "<table width ='100%'><tr><td><b>ID</b></td><td><b>Тип</b></td><td><b>Посажено</b></td><td><b>Осталось</b></td><td><b>Осталось времени</b></td></tr>";
        $result = mysql_query("SELECT * FROM `growing` WHERE `cityid`='".$user_class->city."' AND `userid`='".$user_class->id."'");
        while($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
            $howlong = ($line['timedone'] < time()) ? 'Готово! <a href="fields.php?harvest='.$line['id'].'">Собрать урожай</a>' : howlongtil($line['timedone']);
            echo "<tr><td>".$line['id']."</td><td>".$line['croptype']."</td><td>".$line['amount']."</td><td>".$line['cropamount']."</td><td>".$howlong."</td></tr>";
        }
        echo '</table>';
    } else {
        echo "У вас нету земли с травой.";
    }
    echo '</td></tr>';
    include 'footer.php';
    ?>
    при загрузки файла обновляется поле cropamount но при том поля timeplanted и timedoneостаются на своих местах итого выходит что скрипт неработает полностью так как выводится что при обновлении значении оставчшехсих семян уменьшается а врема нет. Как поправит скрипт чтобы и время тоже уменьшалось на один день вот данные таблицы growing
    PHP:
         Поле      Тип      Сравнение      Атрибуты      Null      По умолчанию      Дополнительно      Действие
        id     int
    (20)             Нет         auto_increment     Обзор уникальных значений     Изменить     Удалить     Первичный     Уникальный     Индекс     Полнотекстовый
        userid     int
    (20)             Нет             Обзор уникальных значений     Изменить     Удалить     Первичный     Уникальный     Индекс     Полнотекстовый
        cityid     int
    (20)             Нет             Обзор уникальных значений     Изменить     Удалить     Первичный     Уникальный     Индекс     Полнотекстовый
        amount     int
    (20)             Нет             Обзор уникальных значений     Изменить     Удалить     Первичный     Уникальный     Индекс     Полнотекстовый
        croptype     varchar
    (75)     latin1_general_ci         Нет             Обзор уникальных значений     Изменить     Удалить     Первичный     Уникальный     Индекс     Полнотекстовый
        cropamount     int
    (20)             Нет             Обзор уникальных значений     Изменить     Удалить     Первичный     Уникальный     Индекс     Полнотекстовый
        timeplanted     int
    (20)             Нет             Обзор уникальных значений     Изменить     Удалить     Первичный     Уникальный     Индекс     Полнотекстовый
        timedone     int
    (20)             Нет             Обзор уникальных значений     Изменить     Удалить     Первичный     Уникальный     Индекс     Полнотекстовый
     
  2. brutka

    brutka Создатель

    Регистр.:
    16 июл 2008
    Сообщения:
    281
    Симпатии:
    13
    $resultgrowupdate = mysql_query("UPDATE `growing` SET `cropamount` = '".$newamount."' WHERE `id` = '".$line['id']."'");

    заменить на

    $resultgrowupdate = mysql_query("UPDATE `growing` SET `cropamount` = '".$newamount."', timeplanted=timeplanted+1, timedone=".time()." WHERE `id` = '".$line['id']."'");
     
Статус темы:
Закрыта.