我创建了一个包含3个字段和存储值的表。我已经创建了一个可以执行不同操作的表单。其中一个是检索。单击“检索”按钮时,将显示表中请求的数据,但是在不同的页面上。我想在同一页面中显示它。我想单独使用PHP来做到这一点。这可能吗?
<!DOCTYPE html>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'DB';
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if(mysqli_connect_error())
{
die("couldn't connect" . $conn->connect_error());
}
$id = $_POST['Id'];
$name = $_POST['Name'];
$blood = $_POST['BloodGroup'];
if(isset($_POST['insert'])){
$insert = "Insert into ins(Id, name, BloodGroup) values ('$id','$name', '$blood')" ;
if($conn->query($insert) === TRUE) {
echo ("Input data entered successfully");
} else {
echo ("Input data failed to be entered" . $conn->error());
}
$conn->close();
} elseif(isset($_POST['update'])) {
$update = "update ins set Name='".$name."', BloodGroup='".$blood."' where Id='".$id."'";
mysql_query($update);
if($conn->query($update) === TRUE) {
echo ("Data updated successfully");
} else {
echo ("Data cant be updated" . $conn->error());
}
$conn->close();
} elseif(isset($_POST['delete'])) {
$id = $_POST['Id'];
$delete = "delete from ins where Id='".$id."'";
if($conn->query($delete) === TRUE) {
echo ("Data deleted successfully");
} else {
echo ("Data cant be updated" . $conn->error());
}
$conn->close();
}
else {
$id = $_POST['Id'];
$retrieve = "SELECT * FROM ins WHERE Id = ".$id;
if ($result=mysqli_query($conn,$retrieve))
{
while ($row=mysqli_fetch_row($result))
{
echo '<table>
<tr>
<td>Id</td>
<td>Name</td>
<td>Blood Group</td>
</tr>
<tr>
<td>'.$row[0].'</td>
<td>'.$row[1].'</td>
<td>'.$row[2].'</td>
</tr>
</table>';
//$row[0],$row[1],$row[2]';
}
mysqli_free_result($result);
}}
$conn->close();
?>
<h2>SELECT THE OPERATION YOU WANT TO PERFORM<h2>
<form method="post">
Id: <input type="text" name="Id" />
Name: <Input type="text" name="Name" />
BloodGroup: <input type="text" name="BloodGroup" /><br /><br />
<input type="submit" name="insert" value="Insert" />
<input type="submit" name="update" value="Update" />
<input type="submit" name="delete" value="Delete" />
<input type="submit" name="retrieve" value="retrieve" />
</form>
</body>
</html>
答案 0 :(得分:0)
您没有向我们展示带有检索按钮的第一个文件中的代码。如果我理解正确,这就是你想要的。您需要在第一个文件上有一个表单,不要指定操作属性
<form method="post">
你需要像上面那样有一个按钮
<button type='submit'>
按下该按钮时,将执行相同的文件。在文件的开头,你检查是否有帖子,如果有,处理它并输出你想要的(并且不输出Retrieve按钮)。你不需要第二个表格来显示结果。
在输出html标题之前,您还需要这个,否则您将看不到编辑框的值。
if(!isset($_SESSION))
session_start();
我看不出其他任何错误(没有自己运行)。您确实意识到该页面将被刷新!如果你不想要这个,那么你必须使用ajax。
答案 1 :(得分:0)
elseif(isset($_POST['retrieve']))
{
$id = $_POST['Id'];
$retrieve = "SELECT * FROM `ins` WHERE `Id` ='".$id."'";
if ($result=mysqli_query($conn,$retrieve))
{
while ($row=mysqli_fetch_row($result))
{
echo '<table>
<tr>
<td>Id</td>
<td>Name</td>
<td>Blood Group</td>
</tr>
<tr>
<td>'.$row[0].'</td>
<td>'.$row[1].'</td>
<td>'.$row[2].'</td>
</tr>
</table>';
}
mysqli_free_result($result);
}}
代替您的else
条件代码,将此