За последние 24 часа нас посетили 10387 программистов и 1255 роботов. Сейчас ищут 445 программистов ...

"Очередь" - сайт

Тема в разделе "Сделайте за меня", создана пользователем Denisonin, 7 янв 2014.

  1. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Я только пришел на этот форум из-за безысходности.
    Прошу помощи готовым кодом так как сам не могу это сделать.

    Нужно сделать страницу на сайте, где будет онлайн-очередь. Тоесть человек заходит, и вводит свой ник, а в таблицу очереди добавлялся его ник и время, в которое он зашел в очередь. Но еще необходима возможность удаления СЕБЯ из очереди (Только себя).

    Прошу помощи
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.492
    Симпатии:
    1.731
    Во-первых, задача не понятна. А во-вторых, за полным решением - в платный раздел
     
  3. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Ну допустим будет 1 таблица, там ники и время. Она идет в порядке очереди(тоесть кто добавит себя, тот добавляется в конец очереди)
    И снизу или с стороны форма добавления. Ник и кнопка. И чтобы можно было только себя удалить, а других нельзя из очереди
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.492
    Симпатии:
    1.731
    И что с этой очередью дальше происходит?
     
  5. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    После 1 часа первый в очереди должен удалятся, если он не удалился сам. И так дальше

    Добавлено спустя 39 секунд:
    Я понимаю что это сложно, но я не могу позволить себе оплатить это, и сам сделать это. Я пытался, но все бессмысленно.
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.492
    Симпатии:
    1.731
    Да не так сложно, вполне сможете додумать. Для вашей очереди заводите таблицу в базе данных, заносите в неё чувака вместе со временем внесения, при каждом обращении к скрипту - удаляете чуваков, внесённых больше часа назад. Единственная сложность - это отображать динамично очередь на страницу. Но поскольку простой запрос на выборку из одной таблицы не должен быть сильно ресурсоёмким, думаю ajax-вызов каждые несколько секунд сервер не убьёт. Если будет убивать, можно сделать тоже самое на файлах. Можно попробовать SQLite - она, по идее, быстрее mysql
     
  7. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Можно код? Пожалуйста
    То, что вы сказали для меня просто набор непонятных слов. Кроме mysql, с ним я знаком немного.
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.492
    Симпатии:
    1.731
    А я должен за вас всё написать и отладить? Какие слова непонятны - спрашивайте, объясню. Вы говорили, что что-то уже писали - покажите код, люди подскажут, может.
     
  9. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Добавить ник и время на mysql я смогу, но как удалять по времени я не понимаю. И как удалить только свой ник
     
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.492
    Симпатии:
    1.731
    Тип поля DATETIME, при записи значения в базу используете стандартную функцию SQL NOW():
    Код (Text):
    1.  
    2. insert into queue (nik, `time`) ("Mikha", NOW());
    В запросе на удаление можно указывать условие:
    Код (Text):
    1.  
    2. delete from queue where nik='Mikha';
    Для того, чтобы в условии использовать поле `time`, можно применить стандартные функции mysql для работы со временем:
    Код (Text):
    1.  
    2. delete from queue where  TIMESTAMPDIFF(HOUR, NOW(), `time`) >= 1;
    Вроде так.
     
  11. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Возникла проблема. При записи в переменную $time = data(H:i) выдало ошибку. Использовал $time = date(H); $time .=" "; $time .=date(i);
    Но часы отображает неверно (14часов, хотя у меня 23)
     
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.492
    Симпатии:
    1.731
    Во-первых, срочно учить синтаксис. Строковые константы заключаются в одинарные или двойные кавычки. Во-вторых, на локале или на сервере экспериментируете - на сервере может быть другой часовой пояс. В-третьих, я предложил вам использовать функции даты и времени прямо mySql, а не php
     
  13. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    [​IMG]
    Вот такая проблема
     
  14. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.492
    Симпатии:
    1.731
    А у вас какой?
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Храните просто time(), а потом уже конвертируйте во, что нужно.
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.162
    Симпатии:
    1.770
    Адрес:
    :сердА
    Признались бы честно, что сессия :) И что не пытались...потому что попытки начинаются с изучения. А пых для изучения крайне прост. За новогодние выходные можно было достаточно подтянуть его, чтобы написать эту задачку.
     
  17. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Да не сессия, личный интерес) Я все сделал, оформил красиво, но теперь вопрос такой : как удалять первое сообщение(первого в очереди) через 1 час?
     
  18. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.492
    Симпатии:
    1.731
    Код (Text):
    1. delete from queue where  TIMESTAMPDIFF(HOUR, NOW(), `time`) >= 1;
    Удаляет всех, кто в табл\лице больше часа
     
  19. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Как можно сделать именно первого удаление после часа, а потом второго и так далее?
     
  20. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.492
    Симпатии:
    1.731
    А насколько они по очереди должны удаляться? Через какое время? В принципе, по приведённому мной запросу и будет удаляться, фактически, по одному, если вы будете через определённый промежуток времени его выполнять
     
  21. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Есть база mysql, таблица "och",
    Нужно:
    Удалять ПЕРВОГО в очереди каждый час.
    После удаления первого, второй встанет на место первого, и тоже будет удален через 1 час, и так далее.
     
  22. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    10.825
    Симпатии:
    1.174
    Адрес:
    там-сям
  23. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Я в этом очень слаб. Прошу помощи сразу кодом. По ходу дела ознакомлюсь.
     
  24. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.162
    Симпатии:
    1.770
    Адрес:
    :сердА
    Что-то не похоже это на "личный интерес". Когда лично интересно, сидит человек и курит по вечерам инфу, чтобы самому сделать что-то.
     
  25. Denisonin

    Denisonin Новичок

    С нами с:
    7 янв 2014
    Сообщения:
    21
    Симпатии:
    0
    Мой интерес заключался в том, что мне захотелось сделать это, дабы улучшить прежнюю систему очереди в одной системе, но так как я мало что понимаю, и смог сделать только дизайн, колонку вывода и страничку добавления в mysql, а остальное(удаление по времени) прошу у вас.