如何用php删除表单中的某一行数据
时间: 2023-09-27 21:06:24 浏览: 227
要删除表单中的某一行数据,您需要使用 SQL 语句中的 `DELETE FROM` 命令。以下是一个示例代码,演示如何使用 PHP 和 MySQL 删除表单中的某一行数据:
```php
<?php
// 连接到数据库
$conn = mysqli_connect("localhost", "username", "password", "database");
// 检查连接是否成功
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
// 获取要删除行的id
$id = $_GET["id"];
// 构建 SQL 删除语句
$sql = "DELETE FROM mytable WHERE id=$id";
// 执行 SQL 删除语句
if (mysqli_query($conn, $sql)) {
echo "数据已成功删除";
} else {
echo "删除数据失败: " . mysqli_error($conn);
}
// 关闭连接
mysqli_close($conn);
?>
```
在上面的示例中,我们首先连接到数据库,然后从表单中获取要删除行的id。接下来,我们构建了一个 SQL 删除语句,只删除id为给定id的行。最后,我们执行了该SQL语句并输出结果。请注意,这个例子没有包含任何安全性检查,您需要确保数据被正确地过滤和验证。
相关问题
创建以liuyuxuan为名的数据库,创建n08为名的数据表。 (2)表结构为3列:第1列列名为id,设为主键、自增;第2列列名为name;第3列age。为数据表创建模型,编写相应的路由、控制器和视图。视图中用表格(table 标签)呈现数据表所有数据。 (4)创建视图,在表单中提供文本框,用于输入以上数据表id列相应数值,以post方式提交表单。 (5)控制器方法根据表单提交的id值,删除数据表中相应行的数据。
很抱歉,我作为一个语言模型,无法直接创建数据库和数据表。但是我可以提供一些 SQL 语句供您参考:
1. 创建名为 liuyuxuan 的数据库
```
CREATE DATABASE liuyuxuan;
```
2. 在 liuyuxuan 数据库中创建名为 n08 的数据表
```
CREATE TABLE n08 (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
PRIMARY KEY (id)
);
```
3. 创建模型、路由、控制器和视图需要根据具体的后端框架进行实现,这里提供一个简单的 PHP 示例供参考:
模型:
```php
class N08Model {
private $conn;
public function __construct($host, $username, $password, $dbname) {
$this->conn = new mysqli($host, $username, $password, $dbname);
if ($this->conn->connect_error) {
die("Connection failed: " . $this->conn->connect_error);
}
}
public function getAllData() {
$sql = "SELECT * FROM n08";
$result = $this->conn->query($sql);
if ($result->num_rows > 0) {
return $result->fetch_all(MYSQLI_ASSOC);
} else {
return [];
}
}
public function deleteData($id) {
$sql = "DELETE FROM n08 WHERE id = $id";
return $this->conn->query($sql);
}
public function close() {
$this->conn->close();
}
}
```
路由:
```php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST["id"];
$model = new N08Model("localhost", "username", "password", "liuyuxuan");
$model->deleteData($id);
$model->close();
header("Location: /table"); // 重定向到显示数据表的页面
}
```
控制器:
```php
class TableController {
public function showTable() {
$model = new N08Model("localhost", "username", "password", "liuyuxuan");
$data = $model->getAllData();
$model->close();
include("table.php"); // 加载视图
}
}
```
视图:
```html
<form method="POST" action="/delete">
<label for="id">ID:</label>
<input type="text" id="id" name="id">
<button type="submit">删除</button>
</form>
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<?php foreach ($data as $row): ?>
<tr>
<td><?php echo $row["id"]; ?></td>
<td><?php echo $row["name"]; ?></td>
<td><?php echo $row["age"]; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
```
创建以自己姓名拼音缩写为名的数据库,创建n+自己班级序号(如n10)为名的数据表。 (2)表结构为3列:第1列列名为id,设为主键、自增;第2列列名为name;第3列自拟。为数据表创建模型,编写相应的路由、控制器和视图。视图中用表格(table 标签)呈现数据表所有数据。 (4)创建视图,在表单中提供文本框,用于输入以上数据表id列相应数值,以post方式提交表单。 (5)控制器方法根据表单提交的id值,删除数据表中相应行的数据。
抱歉,作为AI语言模型我无法创建数据库或编写视图和控制器。但我可以提供一些相关的代码示例供您参考:
在MySQL中创建数据库和数据表:
```
CREATE DATABASE db_name;
USE db_name;
CREATE TABLE n10 (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
column_name VARCHAR(50)
);
```
在Laravel中创建模型:
```
php artisan make:model TableName
```
编写路由:
```
Route::get('/table', 'TableController@index'); //显示数据表中所有数据
Route::post('/table/delete', 'TableController@delete'); //删除数据表中某一行数据
```
编写控制器:
```
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\TableName;
class TableController extends Controller
{
public function index()
{
$data = TableName::all();
return view('table', ['data' => $data]);
}
public function delete(Request $request)
{
$id = $request->input('id');
TableName::where('id', $id)->delete();
return redirect('/table');
}
}
```
编写视图:
```
<table>
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>column_name</th>
<th>操作</th>
</tr>
</thead>
<tbody>
@foreach ($data as $item)
<tr>
<td>{{ $item->id }}</td>
<td>{{ $item->name }}</td>
<td>{{ $item->column_name }}</td>
<td>
<form action="/table/delete" method="post">
@csrf
<input type="hidden" name="id" value="{{ $item->id }}">
<button type="submit">删除</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
```
阅读全文