下面我将详细讲解如何使用PHP和MySQL来创建一个名片库程序,包括以下步骤:
步骤一:创建数据库表和字段
首先,我们需要在MySQL中创建一个名为“business_cards”的数据库,然后创建一个名为“cards”的数据表,表中要包括以下字段:
- id:自增主键,用于标识每一张名片的唯一性
- name:名片拥有者的姓名
- title:名片拥有者的职称
- company:名片所在公司的名称
- phone:名片上的电话号码
- email:名片上的电子邮件地址
- address:名片上的地址
- image_url:名片的照片路径,为避免数据过大,这里建议使用照片URL而非二进制格式
下面是创建该表的代码示例:
CREATE DATABASE IF NOT EXISTS business_cards;
USE business_cards;
CREATE TABLE IF NOT EXISTS cards (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
title VARCHAR(255) NOT NULL,
company VARCHAR(255) NOT NULL,
phone VARCHAR(20) NOT NULL,
email VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL,
image_url VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
步骤二:创建PHP脚本,并连接到MySQL
接下来,我们需要创建一个PHP脚本,用于连接到MySQL数据库,并执行增删改查等操作。下面是一个示例代码,它使用了PDO来连接MySQL数据库,可以根据上述数据表字段来进行增删改查操作:
try {
// 连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=business_cards;charset=utf8mb4', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 新增名片
$stmt = $pdo->prepare("INSERT INTO cards (name, title, company, phone, email, address, image_url) VALUES (?, ?, ?, ?, ?, ?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $title);
$stmt->bindParam(3, $company);
$stmt->bindParam(4, $phone);
$stmt->bindParam(5, $email);
$stmt->bindParam(6, $address);
$stmt->bindParam(7, $image_url);
$name = '张三';
$title = 'CEO';
$company = 'ABC公司';
$phone = '13888888888';
$email = 'zhangsan@abc.com';
$address = '北京市海淀区';
$image_url = '/path/to/image.jpg';
$stmt->execute();
// 查询名片
$stmt = $pdo->prepare("SELECT * FROM cards WHERE name = ?");
$stmt->bindParam(1, $name);
$name = '张三';
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $row) {
echo $row['name'] . ', ' . $row['title'] . ', ' . $row['company'] . '<br>';
}
// 更新名片
$stmt = $pdo->prepare("UPDATE cards SET title = ? WHERE name = ?");
$stmt->bindParam(1, $title);
$stmt->bindParam(2, $name);
$title = 'CTO';
$name = '张三';
$stmt->execute();
// 删除名片
$stmt = $pdo->prepare("DELETE FROM cards WHERE name = ?");
$stmt->bindParam(1, $name);
$name = '张三';
$stmt->execute();
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage();
exit;
}
步骤三:创建前端页面,并连接到PHP脚本
最后,我们需要创建一个前端页面,来展示名片。下面是一个示例代码,它使用了Bootstrap框架来创建页面,使用了jQuery来与后台PHP脚本进行交互:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>名片库</title>
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap-theme.min.css">
</head>
<body>
<div class="container">
<h1>名片库</h1>
<!-- 展示名片列表 -->
<table class="table">
<thead>
<tr>
<th>#</th>
<th>姓名</th>
<th>职称</th>
<th>公司</th>
</tr>
</thead>
<tbody id="card-list">
</tbody>
</table>
<!-- 添加名片的表单 -->
<div class="panel panel-default">
<div class="panel-heading">添加名片</div>
<div class="panel-body">
<form id="add-card-form">
<div class="form-group">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" class="form-control">
</div>
<div class="form-group">
<label for="title">职称:</label>
<input type="text" id="title" name="title" class="form-control">
</div>
<div class="form-group">
<label for="company">公司:</label>
<input type="text" id="company" name="company" class="form-control">
</div>
<button type="submit" class="btn btn-primary">添加</button>
</form>
</div>
</div>
</div>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script>
// 获取名片列表
$.ajax({
url: 'get_cards.php',
type: 'GET',
dataType: 'json',
success: function (data) {
var html = '';
for (var i = 0; i < data.length; i++) {
html += '<tr>';
html += '<td>' + data[i].id + '</td>';
html += '<td>' + data[i].name + '</td>';
html += '<td>' + data[i].title + '</td>';
html += '<td>' + data[i].company + '</td>';
html += '</tr>';
}
$('#card-list').html(html);
}
});
// 添加名片
$('#add-card-form').submit(function (event) {
event.preventDefault();
$.ajax({
url: 'add_card.php',
type: 'POST',
dataType: 'json',
data: $(this).serializeArray(),
success: function (data) {
alert('添加成功!');
}
});
});
</script>
</body>
</html>
在该页面中,我们使用了ajax来与后台PHP脚本进行数据交互,例如获取名片列表和添加名片等操作。同时,我们在PHP脚本中也需要处理这些请求,下面是处理“获取名片列表”和“添加名片”的示例代码:
“获取名片列表”(get_cards.php文件)代码:
<?php
try {
// 连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=business_cards;charset=utf8mb4', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 查询数据
$stmt = $pdo->prepare("SELECT * FROM cards");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage();
exit;
}
“添加名片”(add_card.php文件)代码:
<?php
try {
// 连接数据库
$pdo = new PDO('mysql:host=localhost;dbname=business_cards;charset=utf8mb4', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 插入数据
$stmt = $pdo->prepare("INSERT INTO cards (name, title, company) VALUES (?, ?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $title);
$stmt->bindParam(3, $company);
$name = $_POST['name'];
$title = $_POST['title'];
$company = $_POST['company'];
$stmt->execute();
$id = $pdo->lastInsertId();
// 返回结果
echo json_encode(array('id' => $id));
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage();
exit;
}
以上就是使用PHP和MySQL创建名片库程序的完整攻略。其中,“步骤二”和“步骤三”需要结合实际情况进行代码编写,可根据示例代码进行修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用php+mysql一个名片库程序 - Python技术站