За последние 24 часа нас посетили 53718 программистов и 1772 робота. Сейчас ищут 716 программистов ...

Проблема с банером по паказам

Тема в разделе "PHP для новичков", создана пользователем bogdan_titomir, 11 дек 2018.

  1. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    Дописал модуль для банера по показам но счетчик не прибавляет нужному банеру + 1 в базе вот код.

    PHP:
    1.     $resviews = $core->db->sql("SELECT * FROM _@bannersviews WHERE views>0 ORDER BY rand() LIMIT 1");
    2.         $banner = mysqli_fetch_array($resviews);
    3.         $banner['src'] = 'zagruzki/banners/'.$banner['id'].'.'.$banner['type'];
    4.       if ($banner['views'] == $banner['counthits']){
    5.           $core->db->sql ( "UPDATE _@bannersviews SET views=0 WHERE id='" . $banner['id'] . "'" );
    6.           $core->db->sql ( "UPDATE _@bannersviews SET counthits=0 WHERE id='" . $banner['id'] . "'" );
    7.       } else {
    8.         $core->db->sql ( "UPDATE _@bannersviews SET counthits=counthits+1 WHERE id='" . $banner['id'] . "'" );
    9.         $bannersviewszone.= '<a href="'.$banner['url'].'" target="_blank" class="linkwrap"><span class="blocker"></span><iframe width="'.$banner['width'].'" height="'.$banner['height'].'" src="'.$banner['src'].'" frameborder="0" scrolling="no"></iframe></a>';
    10.       }
    Не могу вообще вкурить крайне удивлен как он дает counthits другим id если в массиве лишь 1 запись. Вот что выдает print_r
    Array ( [0] => 25 [id] => 25 [1] => 150 [width] => 150 [2] => 300 [height] => 300 [3] => http://viva-delux.com/ => http://viva-delux.com/ [4] => gif [type] => gif [5] => 1 [counthits] => 1 [6] => 124213 [views] => 124213 [src] => zagruzki/banners/25.gif )


    Вместо этого прибавляет на +3 + 5 всем банерам хотя в массиве $banner только 1 строка как так не могу понять. Надеюсь на вашу помощь заранее спасибо!
     
    #1 bogdan_titomir, 11 дек 2018
    Последнее редактирование: 11 дек 2018
  2. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    Начал экспериментировать и не много поменял код и и теперь он почему то не на +1 поднимает счетчик а на +7 откуда он еще 6 берет я не понимаю.

    PHP:
    1.     $rescount = $core->db->sql("SELECT id FROM _@bannersviews WHERE views>0 ORDER BY rand() LIMIT 1");
    2.     $count_banner = mysql_fetch_row($rescount);
    3.     $core->db->sql ( "UPDATE _@bannersviews SET count_hits = counthits + 1 WHERE id='".$count_banner[0]."'" );
    Объясните нубу пожалуйста.
     
  3. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    Я максимально сузил зону подозрений и пришел к выводу что в этой записи что то не так есть ли другие способы увеличения просмотров?
    PHP:
    1. counthits=counthits + 1
    Заранее спасибо
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    все там так, значит у тебя 6 раз отрабатывает данный код
     
  5. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    ну да блин так и думал но циклом там и не пахнет.
    --- Добавлено ---
    Цикл есть но он уже отвечает за вывод самого банера iframe, а прибавка к хиту идет выше этого цикла
    --- Добавлено ---
    Мистика какая то xD
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    весь код не видим, знать не можем....
     
  7. bogdan_titomir

    bogdan_titomir Новичок

    С нами с:
    7 окт 2017
    Сообщения:
    159
    Симпатии:
    2
    Проблема решена причина была из за сервера