Задать вопрос
Увлекся программированием более 10 лет назад. Люблю код без cms-ок, чаще выполняю задачи именно так.
Активно изучаю веб-сокеты. Стараюсь юзать последние версии инструментов разработки и ЯП.
Контакты
Местоположение
Россия, Москва и Московская обл., Москва

Наибольший вклад в теги

Все теги (4)

Лучшие ответы пользователя

Все ответы (12)
  • Как выбрать случайный элемент из списка с учётом его веса?

    @Picknice
    Веб-программист (FULL STACK)
    Можно такой подход. Интересно критику почитать.
    var banners = [];
    // Генерируем тестовый массив баннеров
    for( var i = 1; i <= 5; i++ ){
    	banners.push( {
    		data: i,
    		w: Math.floor( Math.random() * 1000 ) + 1 // Вес баннера от 1 до 1000 к примеру
    	} );
    }
    console.log(banners);
    var wt = 0; // Сумма веса всех баннеров
    for( var i = 0; i < banners.length; i++ ){
    	var banner = banners[i];
    	banner.bound = wt += banner.w; // Определяем границу, которая зависит от веса
    }
    console.log(banners); // Проверить наглядно какие границы созданы
    // Генерируем число от 0 до wt
    var r = Math.floor( Math.random() * wt + 1 );
    for( var i = 0; i < banners.length; i++ ){
    	// Ищем какой баннер попал в полученное случайное число
    	var banner = banners[i];
    	if( r > banner.bound - banner.w && r < banner.bound ){
    		console.log('banner ' + banner.data); // В итоге при таком подходе вероятность выпадения более ценного баннера выше, главное чтоб вес был > 0, иначе баннер найден неправильно.
    	}	
    }
    Ответ написан
    8 комментариев
  • Почему не выполняются условия?

    @Picknice
    Веб-программист (FULL STACK)
    Может быть в login.php перед
    if ($oneday) {
    нужно
    session_start();
    $oneday = isset( $_SESSION['oneday'] ) ? $_SESSION['oneday'] : false;
    $sevendays = isset( $_SESSION['sevendays'] ) ? $_SESSION['sevendays'] : false;
    Ответ написан
    1 комментарий
  • Как сделать перевод страницы на PHP?

    @Picknice
    Веб-программист (FULL STACK)
    Добавляешь в таблицы поля, что-то типа 
    было text
    стало text, text_en, text_sp, text_pl  и т.д.
    $lang = $_GET['lang']; // Допустим lang хранится в гет параметре (можно и в куки хранить выбранный язык)
    $lang = in_array( $lang, [ 'ru', 'en', 'sp', 'pl' ] ) ? "_$lang" : ''; // Получается так "_ru" (вместо ru язык выбранный) или пустая строка.
    При генерации страницы где выводишь $row['text'] заменяешь на $row["text$lang"].
    Что касается статичных данных, то проще хранить шаблоны для каждого языка и подключать при генерации страницы.
    Ответ написан
    Комментировать
  • Как сделать чтобы while останавливался на 1 секунду?

    @Picknice
    Веб-программист (FULL STACK)
    Непонятно зачем паузу делать? Если хотите допустим заблокировать доступ к команде put, то храните в таблице время последнего put и и перед выполнением проверьте прошло ли сколько то секунд с последнего put.

    Если же вам нужно каждую секунду отнимать от баланса пользователя, то нужно внутри while получать с бд инфу каждую секунду, делать вычисления и обратно + судя по всему нужно ещё хранить у пользователя счётчик и проверять, если он не равен нулю, то вычитать 1.
    Ответ написан
    Комментировать