我有一个简单的 CRUD,除了更新之外,一切都已经在工作了,我似乎无法将 $_GET 值从我的 href 传递到我的更新.php页面。 知道我做错了什么吗?
更新和删除 HREF
<td><a href="update.php?updateid=<?php echo $row['stud_id'];?>">Edit</a></td>
<td><a href="index.php?deleteid=<?php echo $row['stud_id'];?>">Delete</a></td>
更新.php
<?php
include 'db.php';
if(isset($_GET['updateid'])){
$id = $_GET['updateid'];
}
$select = "SELECT * FROM student WHERE stud_id='".$id."'";
$user = selectStud($select);
if(isset($_POST['up-submit'])){
$upfname = $_POST['up-fname'];
$upmname = $_POST['up-mname'];
$uplname = $_POST['up-lname'];
$upcourse = $_POST['up-course'];
$query = "UPDATE student SET stud_fname='".$upfname."',stud_mname='".$upmname.
"',stud_lname='".$uplname."',stud_course='".$upcourse."' WHERE stud_id='".$id."'";
$update = updateStud($query);
if($update){
echo "<script>alert('Update Success!'); window.location('index.php');</script>";
}else{
echo "<script>alert('Update Failed :('); window.location('index.php');</script>";
}
}
?>
<form method="POST" action="update.php">
<input type="text" name="up-fname" placeholder="First Name" autocomplete="off"><br />
<input type="text" name="up-mname" placeholder="Middle Name" autocomplete="off"><br />
<input type="text" name="up-lname" placeholder="Last Name" autocomplete="off"><br />
<label for="course">Course: </label>
<select name="up-course">
<option name="up-course" value="BSIT">BSIT</option>
<option name="up-course" value="BSHM">BSHM</option>
<option name="up-course" value="BSED">BSED</option>
<option name="up-course" value="BSMT">BSMT</option>
</select><br />
<input type="submit" name="up-submit" value="Save Changes">
</form>
数据库.php
<?php
function getConnection(){
$conn = new PDO("mysql:host=localhost;dbname=preskilltest","root", "");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conn;
}
function selectStud($query){
$pdo = getConnection();
$stmt = $pdo->query($query);
return $stmt->fetchAll();
}
function insertStud($query){
$pdo = getConnection();
$stmt = $pdo->query($query);
return $stmt;
}
function updateStud($query){
$pdo = getConnection();
$stmt = $pdo->prepare($query);
return $stmt->execute();
}
?>
由于在发送 POST 请求(表单)时无法访问 GET 参数 (URL),因此您需要在表单中嵌入 GET 参数。
因此,请在表单中添加以下内容:
<input type="hidden" name="updateid" value="<?php echo $id; ?>>
并在服务器端的代码上有以下内容:
if(isset($_POST['up-submit'])){
$id = $_POST['updateid']; //add this.