Я пытаюсь сделать счетчик кликов, используя PHP и MySQL - PullRequest
0 голосов
/ 30 сентября 2018
<?php
$hostname = 'localhost';
$username = 'root';
$password = '';
$db_name = 'somedb';
$conn = mysqli_connect($hostname, $username, $password, $db_name);
if (isset($_POST['abc'])){
    $date_today = date('Y-m-d');
    $somecount=("INSERT INTO sometable (today,somecount) VALUES ('".$date_today."', '') ON DUPLICATE KEY UPDATE somecount=somecount+1");
    mysqli_query($conn, $somecount);
}

?>

<form method="post" action="some.php">
    <input type="submit" name="abc">
</form>

Я пробовал этот код.Кто-то, пожалуйста, помогите мне подсчитать клик, сделанный пользователем на кнопку или отправить тег ввода.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Я бы посоветовал избегать ON DUPLICATE KEY UPDATE и вместо этого использовать немного другую логику:

<?php
$hostname = 'localhost';
$username = 'root';
$password = '';
$db_name = 'somedb';
$conn = mysqli_connect($hostname, $username, $password, $db_name);
if (isset($_POST['abc'])){
    $date_today = date('Y-m-d');
    $selectStatement = "SELECT somecount FROM sometable WHERE today = '".$date_today."'";
    $selectResult = mysqli_query($conn, $selectStatemnt);
    $finalStatement = "";
    if($selectResult){
        $finalStatement = "UPDATE sometable SET somecount = somecount + 1 WHERE today = '".$date_today."'";
    }
    else{
        $finalStatement = "INSERT INTO sometable (today,somecount) VALUES ('".$date_today."', 1)";
    }
    mysqli_query($conn, $finalStatement);
}

?>

<form method="post" action="some.php">
    <input type="submit" name="abc">
</form>

Здесь мы сначала проверяем, соответствует ли строка для сегодня уже существует в таблице. Если , просто увеличьте его , в противном случае создайте строку и установите значение count в единицу.

0 голосов
/ 30 сентября 2018

Просто обновите эту строку: с

$somecount=("INSERT INTO sometable (today,somecount) VALUES ('".$date_today."', '') ON DUPLICATE KEY UPDATE somecount=somecount+1");

до

$somecount=("INSERT INTO sometable (today,somecount) VALUES ('".$date_today."', '1') ON DUPLICATE KEY UPDATE somecount=somecount+1");

также, чтобы убедиться, что вы не перенаправляете на другую страницу, на которой текущая страница выполняет следующий код:

<form method="post" action="">
    <input type="submit" name="abc">
</form>

при этом убедитесь, что вы отправитесь на ту же страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...