ротатор числовых значений

Discussion in 'PHP' started by dondy, 15 Feb 2016.

  1. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    всем привет!
    в базе данных у меня есть таблица rotator_code, и в ней 2 поля:
    numbers и status_numbers
    numbers содержит список номеров, которые будут показываться в ротаторе, а status_numbers показывает, будет ли отображаться номер, если стоит on то показывается, если off не показывается.

    как реализовать что бы при входе на страницу брался случайный номер с пометкой из базы - cтатус которого ON, и показывался посетителю и был привязан к ip адресу ? то есть на момент входа ip адрес привязывается к случайному выданому номеру из базы, статус которого ON - то есть включен для показа и показывался до тех пор тот же номер пока ip тот который был при получении номера из mysql
     
  2. Waki

    Waki Member

    Joined:
    9 Oct 2015
    Messages:
    55
    Likes Received:
    31
    Reputations:
    10
    Случайно можно выбрать через rand(), т.е. что-то вроде
    Code:
    select numbers from rotator_code where status_numbers='on' order by rand() limit 1
    
    Но если таблица большая, это будет довольно медленно.
    Далее делаем новую таблицу ip_users, с полями ip и numbers, сохраняем текущий ip пользователя и полученное случайное значение.
    В итоге
    - когда заходит пользователь проверяем его ip в таблице ip_users
    - если нет ip, получаем случайное значение и сохраняем в таблице, если есть делаем что требуется с значением numbers.
     
  3. kvasilov48

    kvasilov48 Member

    Joined:
    2 Nov 2015
    Messages:
    18
    Likes Received:
    12
    Reputations:
    2
    И прицепи индекс на status_number.