ыыыы - 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.
Result of php executing
Full code of ыыыы.php
- <?php
- Что мне в данный момент не ясно как сделать умнее
- Есть "рекламный банер", в БД это _ads
- При клике на него юзером отрабатывают функции
- Мне надо при первом клике на банер отработать функцию
- _ads - много записей
- _users - очень много записей
- Каким путем я пошел, он явно не верный
- в _ads добавил строку _item_discount_userid (mediumtext)
- и item_discount = админ выставляет 0:1 есть ли в принципе функционал для дискаунтов
- //полагаю что верный путь - хранить эти данные отдельно?
- //раздуваю БД, храню то что касается конкретного _ads не у него а в отдельной таблице?
- //при клике
- elseif($type == 'click')
- {
- //кол-во кликов _ads +1
- $db->query("UPDATE $db_ads SET item_track_clicks = item_track_clicks+1 WHERE item_id = ".(int)$id."");
- //если для этого _ads есть функционал
- $isdisc = $db->query("SELECT item_discount FROM $db_ads WHERE item_id = " . (int)$id . " LIMIT 1")->fetchColumn();
- //большой костыль
- if ($isdisc)
- {
- //проверяем есть ли в поле которое mediumtext и не может иметь значение по умолчанию какие то данные
- //если пусто - пихаем туда id 3 - у нас ТОЧНО нет такого юзера
- $ifnull = $db->query("SELECT item_discount_userid FROM $db_ads WHERE item_id = " . (int)$id . " LIMIT 1")->fetchColumn();
- if (!$ifnull)
- {
- //если срока в БД item_discount_userid пустая я в ней делаю "3"
- $db->query("UPDATE $db_ads SET item_discount_userid = 3 WHERE item_id = ".(int)$id."");
- }
- //если id юзера нет в списке - это его первый клик на ad
- //загоняем его is в список
- //генерируем для него дискаунт код и высылаем его почтой и нотификацией
- $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();
- if ($isdis<=0)
- {
- //подключаю нужное
- global $db_users, $db_pm;
- //вот стремный момент, я пложу в строке данные вида
- //3,22,345,333, и тд
- //то есть список юзеров которые нажали на банер 1 раз
- $db->query("UPDATE $db_ads SET item_discount_userid = CONCAT(item_discount_userid, ',', " . $usr['id'].") WHERE item_id = ".(int)$id."");
- //генерируем дискаунт код
- $discountcode = cot_randomstring(12);
- //высылаем его юзеру, тут в принципе уже то что должно отработать
- }
- }
- }
File Description
- ыыыы
- PHP Code
- 24 Jun-2021
- 3.26 Kb
You can Share it:
Latest PHP Pastes