这是一个学校作业,我无法弄清楚我哪里出错了。一些援助将不胜感激。我的代码是PHP和HTML的混合,它利用表单将条目输入到我的数据库中的表中。正在输入表单和条目,但是当我执行返回条目功能以查看表格中的所有条目时,没有任何内容返回。
以下是我目前使用的代码:
<?php
if(isset($_POST['submit'])){
//getting timezone data for registration timestamp
$timezone = date_default_timezone_set('America/New_York');
//define username and passowrd according to what user entered
$userFName = $_POST['fname'];
$userLName = $_POST['lname'];
$userCity = $_POST['city'];
$userEmail = $_POST['email'];
$regDate = date(format,timestamp);
// Establishing Connection with Server by passing server_name, user_id and password as a parameter
$conn = mysqli_connect("localhost", "root", "root");
//$conn2 = mysqli_connect("localhost", "root", "root", "progAssignment2");
//to protect mySQL injection for Security purposes
$userFName = stripslashes($userFName);
$userFName = mysqli_real_escape_string($conn, $userFName);
$userLName = stripslashes($userLName);
$userLName = mysqli_real_escape_string($conn, $userLName);
$userCity = stripslashes($userCity);
$userCity = mysqli_real_escape_string($conn, $userCity);
$userEmail = stripslashes($userEmail);
$userEmail = mysqli_real_escape_string($conn, $userEmail);
//select my desired database
$db = mysqli_select_db($conn, 'progAssignment2');
//if user submits form, insert new data into table and echo success
$sql = "INSERT INTO MyGuests (firstname, lastname, city, email, reg_date)
VALUES ('$userFName', '$userLName', '$userCity', '$userEmail', '$regDate');";
if (mysqli_query($conn, $sql)) {
echo "Your form has been successfully submitted!";
} else {
echo "Error updating record: " . mysqli_error($conn);
};
//selecting data from mySQL database
$query = "SELECT * FROM MyGuests";
$result = mysqli_query($conn, $query);
};
?>
<!DOCTYPE html>
<html>
<head>
<title>Programming Assignment 3 - Isaiah Duncan</title>
</head>
<body>
<header></header>
<nav></nav>
<section>
<h1>Insert Data Form</h1>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
First Name:<br>
<input type="text" name="fname" value="" required/><br><br>
Last Name:<br>
<input type="text" name="lname" value="" required/><br><br>
City:<br>
<input type="text" name="city" value="" required/><br><br>
Email:<br>
<input type="text" name="email" value="" required/><br><br>
<input type="submit" name="submit" value="Submit" />
</form>
</section>
<section>
<h1>Results</h1>
<?php
//check if (more than zero) rows are returned. if so, loop through and display
if (mysqli_num_rows($result) > 0) {
//output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"] . " - FirstName: " . $row["firstname"] . " - LastName: "
. $row["lastname"] . " - City: " . $row["city"] . " - Email: " . $row["email"] . "<br>";
};
}else{
echo "0 results" . mysqli_error($conn);
};
?>
<?php echo "There are " . mysqli_num_rows($result); ?>
</section>
<?php mysqli_close($conn); ?>
</body>
</html>
答案 0 :(得分:0)
据我所知,我想你想看到你第一次访问页面时先前插入的所有记录。如果是这种情况,您需要在if语句之外获取$ result。 if语句只会在您提交表单时执行。例如,在if语句之外(右下方),输入:
$conn = mysqli_connect("localhost", "root", "root");
$db = mysqli_select_db($conn, 'test');
$query = "SELECT * FROM MyGuests";
$result = mysqli_query($conn, $query);
每次访问该页面时都应运行上述查询。如果有任何结果,则应列出。