Очень быстрая, простая, веб-страница с увеличением / уменьшением - PullRequest
0 голосов
/ 10 ноября 2010

Я ищу любое направление на действительно быстрой и грязной веб-странице. У меня будет два статических элемента, скажем, человек A и человек B. Я хотел бы нажать кнопку (+) или (-) рядом с каждым из них, которая затем увеличивает или уменьшает целое число, отображаемое относительно каждого человека.

Любой, у кого есть быстрые слова или что-нибудь еще, будет полезен.

Помимо этого, насколько трудно будет вести журнал, который можно просматривать каждый раз, когда значение изменяется или увеличивается, или уменьшается, будет ли легко добавить дату / время к этому?

Редактировать

Хорошо, относительно mysql. У меня уже установлена ​​база данных из предыдущей установки WordPress. Я собираюсь создать новые таблицы с именем 'points', должно ли это иметь 2 поля? Один для человека А и один для человека Б?

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

Поскольку вы хотите, чтобы оно запоминало значение между сессиями (т. Е. Если я увеличил счетчик, покинул веб-сайт и вернулся, я ожидаю, что оно все еще будет увеличиваться), вам необходимо сохранить значение на стороне сервера.Базы данных - лучшая рекомендация для этого.

Если вы планируете использовать PHP (что я предполагаю из тегов), то MySQL - одна из самых простых в реализации баз данных.Если на вашем хосте уже настроена база данных MySQL, это будет легко.Если нет, то как задать базу данных MySQL - это еще один вопрос, который вам нужно задать.

Поскольку вы хотите быстро и грязно, лучшим способом будет форма.Либо POST, либо GET (желательно GET, если вы хотите, чтобы люди отправляли ссылку «проголосовать за это изображение», предпочтительно POST, если вы не хотите, чтобы такие ссылки были возможны).Это легко, но также требует перезагрузки страницы, поэтому современные системы голосования используют вызовы AJAX (javascript).

Ваша HTML-форма будет выглядеть примерно так:

<!-- Person A goes here -->
This person has a score of <!-- We'll do this soon -->.

<form method="get" <!-- or post --> action="vote.php">
<input type="submit" name="submit_button" value="Vote Up!" />
<input type="submit" name="submit_button" value="Vote Down =(" />
<input type="hidden" name="person" value="A" />
</form>

<!-- Similar for person B -->

Обратите внимание, что<!-- --> - это синтаксис для HTML-комментария (они будут удалены на конечном веб-сайте)

В файле voice.php вам сначала нужно будет проверить, была ли отправлена ​​форма, а затем посмотреть, КАКАЯ кнопка отправки была нажата (голосуйте вверх или вниз), затем посмотрите, к какому человеку это относится.Затем мы делаем запись в нашей базе данных.

<?php
    if(isset($_GET['submit_button'])){
        // They submit the form

        $add = ($_GET['submit_button'] == 'Vote Up!') ? 1 : -1;

        $person = $_GET['person'];

        $link = mysql_connect('localhost', 'user', 'password');
        mysql_select_db('database', $link);
        mysql_query("UPDATE table SET value=value+$add WHERE person=$person");
    } else {
        die("You didn't submit the form =(");
    }
?>

Имейте в виду, что это ДЕЙСТВИТЕЛЬНО грязный метод (нет синтаксического анализа запроса и никаких проверок. Это очень восприимчиво к SQL-инъекции. НЕ используйте этов базе данных с важной информацией. На самом деле - вероятно, не используйте это вообще без нескольких изменений =))

Теперь, в основном, это берет таблицу table, находит запись, где personравно любому человеку, который был выбран (выбран по тому, какая форма была использована для отправки), затем добавляет +1 или -1 к value.Вы можете изменить любое из этих имен переменных в своей собственной таблице.Следующий шаг: чтение значения для отображения на предыдущей странице.Помните, что раньше у меня только что был комментарий <!-- we'll do this soon -->.Мы вернемся к этому сейчас.

В начале вашей первой страницы вы хотите прочитать базу данных.Это означает, что ваша первая страница также должна быть PHP.

<?php
    $link = mysql_connect('localhost', 'user', 'password');
    mysql_select_db('database', $link);
    $result = mysql_query("SELECT value FROM table WHERE person=A");
    ...

Теперь у вас есть ресурс MySQL, но вам нужно его значение.

    ...
    $row = mysql_fetch_row($result);
    ...

И теперь мы отображаем его с помощьюинформация.

<!-- Person A goes here -->
This person has a score of <?php echo $row[0]; ?>.

<form method="get" <!-- or post --> action="vote.php">
<input type="submit" name="submit_button" value="Vote Up!" />
<input type="submit" name="submit_button" value="Vote Down =(" />
<input type="hidden" name="person" value="A" />
</form>

Затем вы повторяете для человека B. Это действительно самый грязный метод, поскольку он включает один вызов базы данных на человека.В идеале вы должны получить все нужные значения за один вызов, а затем перебрать возвращенный ресурс и определить, кто есть кто.Или, если вы действительно хотите проявить фантазию, вы уже можете знать, кто есть кто, используя SORT ASC =)

Как я уже говорил, это самый быстрый, самый простой и самый грязный способ сделать то, что выхочу использовать PHP и MySQL.

0 голосов
/ 10 ноября 2010

В любом случае, я бы пошел в базу данных, где хранятся данные о людях и их приращение по идентификатору. Это поток для этого: Создайте базу данных mysql или mysqli "person", создайте таблицу "rate" id - autoincrement ставка будет целочисленной.

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

$rate = $row['rate'];

function incvar(){
  global $rate;
  if(isset($rate) || $rate>0){
    return $rate++;
  }
}

function decvar(){
  global $rate;
  if(isset($rate) || $rate>0){
    return $rate--;
  }
}

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

...