• Как выписать значения user_id в таблице users через запятую?

    Vindicar
    @Vindicar
    RTFM!
    1. fetchall() возвращает список из кортежей. Эти две структуры в питоне встречаются очень часто, приёмы работы с ними нужно знать.
    2. Когда ты организовал цикл по строкам, и вытащил из каждой строки id, используй f-строки для подстановки значения в строку. Полученные отформатированные строки складывай в ещё один список (ты ведь прочитал ссылку выше и освоил работу со списками?)
    3. Когда у тебя готов список строк вида @idXXXXXX, собери его в одну строку методом join().

    И да, всё вышеперечисленное - азы языка. Если ты не знаешь их, хвататься за базы данных рановато.
    Ответ написан
    Комментировать
  • Как разобраться в битовых масках или как их там?

    sergiks
    @sergiks Куратор тега ВКонтакте
    ♬♬
    Про двоичное представление чисел вы же в курсе?
    0 = 0000 0000
    1 = 0000 0001
    2 = 0000 0010
    3 = 0000 0011
    4 = 0000 0100
    5 = 0000 0101
    6 = 0000 0110
    7 = 0000 0111
    8 = 0000 1000
    9 = 0000 1001

    ... и так далее. До 232 или даже до 264 - зависит от системы, 32- или 64-битной и языка программирования.

    Позиции битов считаются справа налево. Крайний правый бит имеет позицию 0. Позиция бита – это степень двойки. Если бит установлен в 1, надо прибавить 2 в степени этой позиции.

    Например, число 3 = 0000 0011 означает 20 + 21 = 1 + 2 = 3.

    Примечательно, что степени двойки – 0, 1, 2, 4, 8, 16, 32, 64, ... – выражаются всего одним включённым битом, одной единичкой, остальные биты – нули.

    Битовые маски – это договорённость, что каждый бит (каждая позиция) значит что-то определённое, что может быть включено или выключено, 1 или 0. Как линейка выключателей.

    Например, с разрешениями ВКонтакте:
    1 - бит 0 - notify
    2 - бит 1 - friends
    4 - бит 2 - photos
    8 - бит 3 - audio

    У ВК линейка длинная, состоит из 32 «выключателей».

    Допустим, вашему приложению требуются разрешения photos и audio – биты 2 и 3 надо установить в 1, остальные 0. Это можно сделать простым сложением: 22 + 23 = 4+8 = 12. В двоичной системе: 12 = 0000 0000 0000 1100

    Для удобства вычисления ВК прямо пишут значения, которые надо прибавить, чтобы получить нужную битовую маску – итоговое число, которое вы передадите в метод АПИ для запроса разрешения.

    Ещё один пример, вам требуется стена wall и offline доступ в любое время. Смотрите в таблице, какие там числа: wall (+8192) и offline (+65536). Значит, вам нужно просить разрешения для маски 73728
    Ответ написан
    Комментировать
  • Есть удачные примеры бота в Telegram для продажи товара (online-магазин)?

    vabka
    @vabka
    Токсичный шарпист
    Также интересует ваше мнение: эффективно ли в настоящее время использовать бота в Telegram в качестве online-магазина?

    Мне кажется, если это не магазин с запрещёнными веществами - нет.
    Просто из-за того что у чат-ботов слишком бедный UI и там сложно реализовать что-то адекватное.

    По тому все магазины делают через сайты и мобильные приложения.
    Ответ написан
    Комментировать
  • Как запретить отправку формы, если хотя бы одно поле не заполнено?

    antonov22
    @antonov22
    PHP - программист.
    Вешаешь обработчик на событие sumbit.
    Добавляешь evt.preventDefault(), чтобы остановить отправку формы.
    Делаешь валидацию и оповещение пользователя (как пример alert).
    Отправляешь формы через js (this.submit()).

    const form = document.querySelector('#form');
    const email = document.querySelector('#email');
    const name = document.querySelector('#name');
    form.addEventListener('submit', function(evt) {
      evt.preventDefault();
      if(!name.value) {
        alert('Поле имя не заполнено');
        return;
      }
      
      if(!email.value) {
        alert('Поле email не заполнено');
        return;
      }
      
      this.submit();
    });
    Ответ написан
    Комментировать
  • Событие нажатия 'Enter' в форме(input)?

    @IceJOKER
    Web/Android developer
    $("#id_of_input").keyup(function(event){
        if(event.keyCode == 13){
            event.preventDefault();
    
        }
    });


    Чистый js - stackoverflow.com/questions/905222/enter-key-press... - научитесь пользоваться поиском

    p.s. если нужно перехватить просто отправку формы, а не именно Enter, то можно юзать onsubmit или submit(), что более разумно для этой цели )
    Ответ написан
    Комментировать
  • Почему переменные в Python себя так ведут?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Потому что список новый вы создали, а словарь в нём остался тот же.
    Ответ написан
    3 комментария
  • Как сделать такую рамочку через before или after?

    @thisuserhatephp
    Офлайн - losers Онлайн - lusers
    Ответ написан
    Комментировать
  • Как хранить картинки в БД MySQL?

    @helpik94
    DevOps engineer в Containerum
    Сначала делаете таблицу для хранения картинок:
    create table testblob (
        image_id        tinyint(3)  not null default '0',
        image_type      varchar(25) not null default '',
        image           blob        not null,
        image_size      varchar(25) not null default '',
        image_ctgy      varchar(25) not null default '',
        image_name      varchar(50) not null default ''
    );

    Затем:
    $imgData = file_get_contents($filename);
    $size = getimagesize($filename);
    mysql_connect("localhost", "$username", "$password");
    mysql_select_db ("$dbname");
    // mysqli 
    // $link = mysqli_connect("localhost", $username, $password,$dbname); 
    $sql = sprintf("INSERT INTO testblob
        (image_type, image, image_size, image_name)
        VALUES
        ('%s', '%s', '%d', '%s')",
       
        mysql_real_escape_string($size['mime']),
        mysql_real_escape_string($imgData),
        $size[3],
        mysql_real_escape_string($_FILES['userfile']['name'])
        );
    mysql_query($sql);

    Для отображения картинки на веб странице:
    $link = mysql_connect("localhost", "username", "password");
    mysql_select_db("testblob");
    $sql = "SELECT image FROM testblob WHERE image_id=0";
    $result = mysql_query("$sql");
    header("Content-type: image/jpeg");
    echo mysql_result($result, 0);
    mysql_close($link);
    Ответ написан
    2 комментария
  • Как хранить картинки в БД MySQL?

    sim3x
    @sim3x
    1) Какой тип поля использовать и вообще как харнится там картинка, в виде набора байтов?
    blob

    2) Вопрос, вытекающий из предыдущего, как сделать запрос на вставку и указать это jpg, png, gif и т.д.?
    Отдельное поле с указанием типа.
    Или делать магию узнавания типа файла по магии php.net/manual/en/function.mime-content-type.php
    Или (правильное решение) после загрузки файла приводить его к одному типу (жпг, пнг, вебм)
    Или даже так https://stackoverflow.com/a/21732109
    <img src="data:image/png;base64,'.base64_encode($row['image']).'">


    3) Как выводить на странице? Когда мы просто картинку средствами php тдаём там всё понятно header отдаём файловый, потом сам файл и всё ок, но здесь header уже передан и это обычная страница или там стоит типа src="getimage.php?id=738" где уже php скрипт формирует и отдаёт каждую картинку?
    а никак. Когда браузер будет по данному урлу запрашивать, пхп ему должен сформировать ответ с правильным контент-тайпом, так что перед началом отдачи - нужно будет полностью получить саму картинку из БД
    Ответ написан
    Комментировать