【发布时间】:2017-05-27 17:04:01
【问题描述】:
这是一个学校作业,我只是不知道我哪里出错了。一些帮助将不胜感激。我的代码是 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>
【问题讨论】:
-
看起来您的 SELECT 查询只有在提交表单时才会执行。您是否尝试将其移至
};行下方? -
@NanaPartykar 没错,他们可能认为
$db = mysqli_select_db($conn, 'progAssignment2');就足够了,但$conn = mysqli_connect("localhost", "root", "root");也应该有4 个参数。编辑:您删除了我正在回复的评论。然而,$db变量并没有做任何事情。 -
除了在提交表单之前,post 位应该无关紧要。他必须至少做过一次。虽然它应该被移动我不认为这是原因,
-
@Fred-ii-:我想,我指出了错误的问题。这就是为什么被删除。是的。我也在想 4 参数必须在那里。
-
@NanaPartykar 您可以向版主举报以取消删除您的评论;我认为这没有什么问题,如果你愿意的话。但是,是的,您的(已删除)评论是有效的。
标签: php html mysql database mysqli