我在选择最后一个注册用户时遇到问题。我正在尝试将新注册的用户打印到屏幕上,有人能帮忙吗?
<?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 />"