Я создал игру и хочу отправить счет в базу данных и показать в ней 10 лучших игроков. поэтому я создал столбец в своей таблице, в котором есть score, ip и name для отображения их результатов на табло. Он работает, и он отправляет информацию в базу данных и показывает ее на табло, но проблема в том, что когда я хочу сказать, был ли столбец создан пользователем ip, не создавайте новый и не обновляйте предыдущий столбец; но это не работает, и он отправляет все запросы и показывает им даже дубликаты ips. Я надеюсь, что кто-то знает мою проблему и скажет мне ее правильную форму. Спасибо.

Это мой почтовый индекс в js:

$(document).ready(function() {
    $("#sendrecord").click(function() {
        var userscore = $("#scoresee").val();
        var username = $("#namesee").val();
        var userip = $("#ipsee").val();
        $.post("./scores.php", {
           score: userscore,
           name: username,
           ip: userip
            },
            function(res, status) {
            var data = JSON.parse(res);
            console.log('data', data);
            console.log('status', status);
            }
        );
    });
});

И это мой код получения в php:

$username = $_POST['name'];
$userscore = $_POST['score'];
$realip = $_POST['ip'];
    $sql1 = "SELECT ip FROM scores WHERE ip = '$realip'";
    $result = $conn->query($sql1);
    if($result->num_rows <= 0){
        $sql2 = "INSERT INTO scores (name, score, ip) VALUES ('$username', '$userscore', '$realip')";
        $conn->exec($sql2);
    } else {
        $sql3 = "UPDATE scores SET score = '$userscore' WHERE ip = '$realip'";
        $conn->exec($sql3);
    }
-1
MoHaMMaD 8 Фев 2021 в 20:15

1 ответ

Лучший ответ

В вашем случае вам нужно будет добавить уникальный индекс в столбец ip (если он не существует), а затем вы можете сделать это следующим образом:

INSERT INTO scores (name, score, ip) VALUES ('name1', 100, '127.0.0.1')
ON DUPLICATE KEY UPDATE score=score+100;

Этот запрос вставит новую строку для IP 127.0.0.1 или обновит score для существующей.

Для получения дополнительной информации о ВСТАВИТЬ ... ПРИ ОБНОВЛЕНИИ ДВОЙНОГО КЛЮЧА Заявление

0
Eugene K 9 Фев 2021 в 06:51