Хобрук: Ваш путь к мастерству в программировании

нажав кнопку, отключите ее и сохраните текущую дату и время в базе данных после того, как кнопка изменения даты активируется в php

<table id="rounded-corner">
  <thead>
    <tr>
      <th width="5%">ID</th>
      <th>Site Url</th>
      <th width="10%"></th>
      <th width="">Visit Sites</th>
    </tr>
  </thead>
  <tbody>

 <?php
 if(isset($_POST['siteID'])) {
   $q = "INSERT INTO visited (userID, siteID, datetime)
        VALUES(".$_SESSION['id'].", ".$_POST['siteID'].", NOW())";
   $r = mysql_query($q);
   header('Location: index.php');
 }

  while($rows = mysql_fetch_assoc($result)) {
 ?>
 <form action="" method="post">
    <tr>
      <td><?php echo $rows['id']; ?></td>
      <td><?php echo $rows['url']; ?></td>
      <td></td>
      <td>
        <?php
        $query1 = "SELECT datetime FROM visited WHERE `siteID` = ".$rows['id']." AND `userID` = ".$_SESSION['id']." LIMIT 1";
        $result1 = mysql_query($query1);

        $row1 = mysql_fetch_assoc($result1);

        $difference=strtotime('tomorrow')-time();
        echo $difference;
        if($difference > 0){
        ?>
          <input type="submit" disabled="disabled" value="Visit Now" id="btnVisit<?php echo $rows['id']; ?>" />
        <?php
        } else {
        ?>
          <input type="hidden" name="siteID" value="<?php echo $rows['id']; ?>" />
          <input type="submit" value="Visit Now" id="btnVisit<?php echo $rows['id']; ?>" />
        <?php
        }
        ?>
      </td>

    </tr>
    </form>
 <?php
  }
 ?>

  </tbody>
</table>

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

таблицы следующие:

пользователи: идентификатор, имя, пароль

сайты: идентификатор, URL

посетили: идентификатор, идентификатор пользователя, идентификатор сайта, дата и время.

Благодарность

14.02.2014

  • Какой код у вас есть до сих пор? Будет ли задействован javascript? 14.02.2014
  • нет, я просто использую чистый php mysql. 14.02.2014
  • так что я полагаю, что таблица user_button принимает дату и время нажатия кнопки в поле даты и времени? 14.02.2014
  • сначала мне нужно выяснить, как проверить, что сегодня все еще 14-е, и кнопка все еще отключена после ввода 15-й кнопки повторно активировать ... 14.02.2014
  • почему бы просто не сделать разницу дат, дату в базе данных и сегодняшнюю дату. Если разница ›= 1 день, повторно активируйте кнопку. 14.02.2014
  • если вы покажете нам часть своего кода, будет легче поместить его в контекст 14.02.2014
  • Не вижу здесь вопросительного знака. Так в чем вопрос? 14.02.2014
  • мой вопрос ясен, я хочу знать, как рассчитать дату сегодня или завтра, тогда эта база данных я отключу кнопку включения .. спасибо :) 15.02.2014

Ответы:


1

Сделайте разницу в дате между датой в базе данных и сегодняшней датой:

http://ca2.php.net/date_diff

    $visited = date_create($row1['datetime']);
    $today = date_create(date("Y-m-d H:i:s"));

    $diff = date_diff($visited, $today );
    echo $diff->format("%R%a days");

это должно пройти целый день (24 часа), прежде чем результат будет равен +1 дню.

14.02.2014
  • тогда я предлагаю более конкретно ответить на ваш вопрос и добавить пример кода, который у вас есть, если вам нужна более подробная помощь. 14.02.2014
  • хорошо, я поделился своим кодом, над которым я сейчас работаю... пожалуйста, проверьте и помогите мне... где я ошибаюсь. 14.02.2014

  • 2

    Итак, если вы сохраняете дату и время, когда они в последний раз нажимали кнопку, то просто в вашем коде, где вы отображаете кнопку, выполните проверку, чтобы увидеть, больше ли сегодняшняя дата, чем дата, хранящаяся в БД. Если да, то отобразите кнопку; В противном случае отключите кнопку.

    Вы можете сделать так, чтобы ваш оператор SQL был примерно таким, чтобы получить дату из БД:

    SELECT DATE(datetime) FROM user_button WHERE userid = 'XXXXX' AND buttonid = 'YYYYY';
    

    А затем сравните его со вчерашней датой вот так:

    $date_yesterday = date("Y-m-d", strtotime('yesterday'));
    
    if ($date_from_db > $date_yesterday) {
       // SHOW FULL BUTTON
    }
    else {
        // SHOW DISABLED BUTTON
    }
    
    14.02.2014
  • да, я достиг этой точки, но проблема в том, как сравнить завтра, когда возникает, и кнопка снова активна. 14.02.2014
  • в базе данных хранится сегодняшняя текущая дата и время (2014-02-14 11:10:40), поэтому нам нужно проверить до (2014-02-15 00:00:00), когда мы снова включим кнопку... 14.02.2014
  • так что вы не хотите, чтобы прошел целый день, но чтобы день изменился только 14.02.2014
  • Новые материалы

    Понимание СТРУКТУРЫ ДАННЫХ И АЛГОРИТМА.
    Что такое структуры данных и алгоритмы? Термин «структура данных» используется для описания того, как данные хранятся, а алгоритм используется для описания того, как данные сжимаются. И данные, и..

    Как интегрировать модель машинного обучения на ios с помощью CoreMl
    С выпуском новых функций, таких как CoreML, которые упростили преобразование модели машинного обучения в модель coreML. Доступная модель машинного обучения, которую можно преобразовать в модель..

    Создание успешной организации по науке о данных
    "Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

    Технологии и проблемы будущей работы
    Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

    Игорь Минар из Google приедет на #ReactiveConf2017
    Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..