ыыыы - PHP Online

Form of PHP Sandbox

Enter Your PHP code here for testing/debugging in the Online PHP Sandbox. As in the usual PHP files, you can also add HTML, but do not forget to add the tag <?php in the places where the PHP script should be executed.



Your result can be seen below.

Result of php executing





Full code of ыыыы.php

  1. <?php
  2. Что мне в данный момент не ясно как сделать умнее
  3. Есть "рекламный банер", в БД это _ads
  4. При клике на него юзером отрабатывают функции
  5. Мне надо при первом клике на банер отработать функцию
  6. _ads - много записей
  7. _users - очень много записей
  8.  
  9. Каким путем я пошел, он явно не верный
  10. в _ads добавил строку _item_discount_userid (mediumtext)
  11. и item_discount = админ выставляет 0:1 есть ли в принципе функционал для дискаунтов
  12.  
  13. //полагаю что верный путь - хранить эти данные отдельно?
  14. //раздуваю БД, храню то что касается конкретного _ads не у него а в отдельной таблице?
  15.  
  16. //при клике
  17. elseif($type == 'click')
  18.       {
  19.             //кол-во кликов _ads +1
  20.         $db->query("UPDATE $db_ads SET item_track_clicks = item_track_clicks+1 WHERE item_id = ".(int)$id."");
  21.                 //если для этого _ads есть функционал
  22.                  $isdisc = $db->query("SELECT item_discount FROM $db_ads WHERE item_id = " . (int)$id . " LIMIT 1")->fetchColumn();
  23.                
  24.                                 //большой костыль
  25.                         if ($isdisc)
  26.                         {
  27.                                 //проверяем есть ли в поле которое mediumtext и не может иметь значение по умолчанию какие то данные
  28.                                 //если пусто - пихаем туда id 3 - у нас ТОЧНО нет такого юзера
  29.                                 $ifnull = $db->query("SELECT item_discount_userid FROM $db_ads WHERE item_id = " . (int)$id . " LIMIT 1")->fetchColumn();
  30.                                 if (!$ifnull)
  31.                                 {
  32.                                         //если срока в БД item_discount_userid пустая я в ней делаю "3"
  33.                                         $db->query("UPDATE $db_ads SET item_discount_userid = 3 WHERE item_id = ".(int)$id."");
  34.                                 }
  35.                                         //если id юзера нет в списке - это его первый клик на ad
  36.                                         //загоняем его is в список
  37.                                         //генерируем для него дискаунт код и высылаем его почтой и нотификацией
  38.                                         $isdis = $db->query("SELECT COUNT(*) FROM $db_ads WHERE item_id = " . (int)$id . " AND FIND_IN_SET('".$usr['id']."',item_discount_userid) LIMIT 1")->fetchColumn();
  39.                                         if ($isdis<=0)
  40.                                                 {
  41.                                                         //подключаю нужное
  42.                                                         global $db_users, $db_pm;
  43.                                                         //вот стремный момент, я пложу в строке данные вида
  44.                                                         //3,22,345,333, и тд
  45.                                                         //то есть список юзеров которые нажали на банер 1 раз
  46.                                                         $db->query("UPDATE $db_ads SET item_discount_userid = CONCAT(item_discount_userid, ',', " . $usr['id'].") WHERE item_id = ".(int)$id.""); 
  47.                                                         //генерируем дискаунт код
  48.                                                         $discountcode = cot_randomstring(12);
  49.                                                         //высылаем его юзеру, тут в принципе уже то что должно отработать
  50.  
  51.                                                 }
  52.                         }
  53.     }
File Description
  • ыыыы
  • PHP Code
  • 24 Jun-2021
  • 3.26 Kb
You can Share it: