从数据库中选择最后一个注册用户


Select last registred user from database

我在选择最后一个注册用户时遇到问题。我正在尝试将新注册的用户打印到屏幕上,有人能帮忙吗?

<?php
if (isset($_POST['registrovat']))
{
    $username = $_POST['username'];
    $password = $_POST['password'];
    $passwordre = $_POST['passwordrepeat'];
    $email = $_POST['email'];
    if ($password == $passwordre)
    {
        if ($username && $email)
        {
            $password = md5(sha1(md5($password)));
            $db_servername = "localhost";
            $db_username = "kubaaivcaweb";
            $db_name = "insanity";
            $db_password = "XXXXX";
            $username = $_POST['username'];
            $ip = $_SERVER['REMOTE_ADDR'];
            $db_conn = mysqli_connect($db_servername, $db_username, $db_password, $db_name);
            $query = mysqli_query($db_conn, "INSERT INTO `8` SET username='$username', password='$password', ip='$ip', email='$email'");
            echo "Registrace proběhla úspěšně";
        }
    }
    else {
        echo "Hesla se neshodují!";
    }
}
while ($row = mysqli_fetch_assoc($new))
{
    $new = mysqli_query($db_conn, "SELECT * FROM `8` ORDER BY `id` DESC");
    echo "<p>Nejnovější uživatel:" . $row['username'] . "</p>";
}

您已经将查询放在循环内部而不是外部。您的代码如下:

while ($row = mysqli_fetch_assoc($new)) {
    $new = mysqli_query($db_conn, "SELECT * FROM `8` ORDER BY `id` DESC");
    echo "<p>Nejnovější uživatel:" . $row['username'] . "</p>";
}

相反,它应该是这样的:

echo "DEBUG before query<br  />"
if (! $new = mysqli_query($db_conn, "SELECT * FROM `8` ORDER BY `id` DESC")) {
    echo "DB error: ". mysqli_error($db_conn). "<br />" ;
    exit 1;
}
echo "DEBUG after query<br  />"
while ($row = mysqli_fetch_assoc($new))  {
    echo "<p>Nejnovější uživatel:" . $row['username'] . "</p>"; 
}
echo "DEBUG after fetch<br  />"