Помощь в компоненте

Тема в разделе "Как сделать...", создана пользователем minimalism, 20 июн 2012.

  1. minimalism

    minimalism Создатель

    Регистр.:
    6 июл 2011
    Сообщения:
    31
    Симпатии:
    1
    Доброго времени суток!
    Помогите пожалуйста поправить небольшой скрипт в компоненте движка.
    Есть компонент суть которого просто пользователь нажимае на кнопку у него открываеться в кладка и ему за это в счёт идёт +1 эта $Clicks так же у каждого объекта ведёться счёт кликов например кликнули восемь раз и у него выводиться 8 кликов эта $f_kol_cliks_now .У каждого объекта задано определённое количество кликов при достижений которого он должен выключаться.Но дело в том что счёт кликов работает не корректно а при добавлений нового объекта и вовсе у всех объектов сразу сбиваеться счёт.
    Помогите пожалуйста поправить эти ошибки.
    Вот код компонента:
    PHP:
    <input type='hidden' value='$f_RowID' name='hidden_1' />
     
                                            <
    input type='submit' class='bt2 sh' id='new_click' name='new_click' onclick=\"window.open('$f_ssilka')\"; style='background: url(/img/bt2.png); height:44px; width:240px;'/>
    <br />Количество сделанных кликов - 
    $f_kol_cliks_now.<br />
    </form>
                    </div>
     
    </td>
     
    "
    ;
    if(
    $_POST['new_click'])
    {
    $My_new_ID=$_POST['hidden_1'];
    $Clicks $current_user[Clicks];
    $Clicks++;
    $Date_now date(d).".".date(m).".".date(yy);
    $Date_click $db->get_var("SELECT date FROM users_clicks WHERE user='$AUTH_USER_ID' AND date='$Date_now' AND message='$My_new_ID'");
     
    $kol_skachek $db->get_var("SELECT kol_skachek FROM Message99 WHERE Message_ID=$My_new_ID");
     
    if(
    $Date_click == "")
    {
        
    $f_kol_cliks_now++;
      
    $db->query("UPDATE User SET Clicks = '$Clicks' WHERE User_ID = '$AUTH_USER_ID'");
      
    $db->query("UPDATE Message99 SET kol_cliks_now = '$f_kol_cliks_now' WHERE Message_ID = '$My_new_ID'");
      
    $new_kol $db->get_var("SELECT COUNT (date) FROM users_clicks WHERE message='$My_new_ID'");
      
    $new_kol++;
      
    $db->query("INSERT INTO users_clicks SET date='$Date_now', user='$AUTH_USER_ID', message='$My_new_ID';");
      
    $old_kol $db->get_var("SELECT Num FROM Message99 WHERE Message_ID=$My_new_ID");
      if(
    $new_kol == $old_kol)
        
    $db->query("UPDATE `zabespla_zb`.`Message99` SET Checked = 0 WHERE Message_ID = '$My_new_ID'");
    }
    }
    echo 
    "
     
  2. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Думаю проблема в том, что UPDATE выполняется без проверки критериев в блоке WHERE или что-то вроде того. Т.е. происходит апдейт всех строк в пустые значения. Поставь проверки перед запросом, т.е. если значения $Clicks, $AUTH_USER_ID и прочих параметров пусты или не являются числами, то апдейт не выполнится, а на экран выведется отладочная информация.
     
  3. minimalism

    minimalism Создатель

    Регистр.:
    6 июл 2011
    Сообщения:
    31
    Симпатии:
    1
    Поправь пожалуйста нужные строки...
    Моих знаний на это к сожалению не хватает.
     
  4. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10