- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
公司盤點網頁:
這個網頁使用了wamp64模擬伺服器,phpmyadmin架設資料庫,php和html實作頁面,完成登入員工資料,貨品資料,入庫,盤點四個基本功能
這是我在上修大二的"資料庫應用"時所學到的知識所完成的,第一次能用在課堂上學來的知識來實作在生活中會運用到的程式感覺真的很特別,這也讓我感受到了學習程式語言的魅力
下面是網頁畫面:
盤點資料 :
入庫資料 :
貨品資料 :
員工資料 :
資造庫畫面:
員工資料:
貨品資料:
入庫資料:
盤點資料:
1.如何連接資料庫
這裡是用了物件導向的寫法,每個功能都分別存放(為了避免網站出現誤判,我把前標都刪掉了)
php
define('DB_DSN', 'mysql:dbname=inventory;host=localhost02;port=3306'); //資料庫連線字串
define('DB_USER', 'root'); //資料庫使用者
define('DB_PASSWORD',''); //資料庫使用者密碼
//資料庫連接
$options = [
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
];
try {
$pdo = new PDO(DB_DSN, DB_USER, DB_PASSWORD, $options);
'資料庫連線成功。';
} catch (PDOException $e) {
echo '資料庫連線失敗。';
}
2.如何創建頁面html
head>
meta charset="UTF-8">/meta>
title>demo/title>
/head>
style>
* {
box-sizing: border-box;
}
body {
font-family: Arial, Helvetica, sans-serif;
}
/* Style the header */
header {
background-color: #666;
padding: 30px;
text-align: center;
font-size: 35px;
color: white;
}
/* Container for flexboxes */
section {
display: -webkit-flex;
display: flex;
}
/* Style the navigation menu */
nav {
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
background: #ccc;
padding: 20px;
}
/* Style the list inside the menu */
nav ul {
list-style-type: none;
padding: 0;
}
/* Style the content */
article {
-webkit-flex: 3;
-ms-flex: 3;
flex: 3;
background-color: #f1f1f1;
padding: 10px;
}
/* Style the footer */
footer {
background-color: #777;
padding: 10px;
text-align: center;
color: white;
}
/* Responsive layout - makes the menu and the content (inside the section) sit on top of each other instead of next to each other */
@media (max-width: 600px) {
section {
-webkit-flex-direction: column;
flex-direction: column;
}
}
table{
border-collapse: collapse;
margin-top: 20px;
}
thead{
background: #ddd;
}
td, th{
border: 1px solid #ccc;
padding: 6px;
}
tbody tr:nth-child(even){
background: #eee;
}
/style>
body>
header>
h2>公司資料庫應用/h2>
/header
div class="topnav">
a href="index.php">員工資料維護/a>
a href="product.php">產品資料/a>
a href="StockDetail.php">入庫明細/a>
a href="InventoryDetail.php">盤點明細/a>
/div
div class="content"
做起來的效果如下
公司資料庫應用
3.對資料庫的輸入與輸出:(這裡我就只放Product資料的登入作為範例,header是網頁的標題程式碼,core是連結資料庫的程式碼,因為這個程式有點複雜,用上面的格式會被Blog吃掉,所以我這邊就直接把程式碼丟上來了)
<?php require_once 'view/header.php'; ?>
<?php require_once 'core/db.php'; ?>
<form action="" method="post">
請輸入貨品資料:
<p>
<label for="productid">貨品編號</label>
<input name="productid" type="char" size="10"/>
</p>
<p>
<label for="productname">貨品名稱</label>
<input name="productname" type="varchar" size="50"/>
</p>
<p>
<label for="type">型號</label>
<input name="type" type="char" size="30"/>
</p>
<p>
<label for="company">產商</label>
<input name="company" type="char" size="30" />
</p>
<p>
<label for="memo">備註</label>
<input name="memo" type="char" size="30"/>
</p>
<input name="action" type="hidden" value="add" />
<input type="submit" value="新增" />
</form>
<?php
if (isset($_POST['action'])) {
switch ($_POST['action']) {
//新增
case 'add':
$query = $pdo->prepare("INSERT INTO product (productid,productname,type,company) VALUES(substr('{$_POST['productid']}',1,10),substr('{$_POST['productname']}',1,50),substr('{$_POST['type']}',1,30),substr('{$_POST['company']}',1,30));");
$result = $query->execute();
if ($result) {
echo '<p>新增成功</p>';
} else {
echo "<p>新增失敗,錯誤訊息:" . $query->errorInfo[2] . '</p>';
}
break;
//修改
case 'edit_ok':
$query = $pdo->prepare("UPDATE product SET productname = '{$_POST['productname']}' WHERE productid = '{$_POST['productid']}'");
$result = $query->execute();
if ($result) {
echo '<p>編輯成功</p>';
} else {
echo "<p>編輯失敗,錯誤訊息:" . $query->errorInfo[2] . '</p>';
}
break;
//刪除
case 'delete':
$query = $pdo->prepare("DELETE FROM product WHERE productid = '{$_POST['productid']}'");
$result = $query->execute();
if ($result) {
echo '<p>刪除成功</p>';
} else {
echo "<p>刪除失敗,錯誤訊息:" . $query->errorInfo[2] . '</p>';
}
break;
}
}
$query = $pdo->prepare('SELECT * FROM product');
$query->execute();
if ($query->rowCount() > 0)
{
$data = $query->fetchAll(PDO::FETCH_ASSOC);
$edit = isset($_POST['action']) ? $_POST['action'] === 'edit' : false;
$id = $edit ? $_POST['productid'] : null;
echo '<table>';
echo '<thead>';
echo '<tr><th>貨品編號</td><th>貨品名稱</th><th>型號</th><th>廠商</th><th></th><th></th></tr>';
echo '</thead>';
echo '<tbody>';
foreach ($data AS $row) {
if ($edit && $id === $row['productid']) {
echo '<tr><td>' . $row['productid'] . '</td>';
echo '<td><form action="" method="post"><input name="productname" value="' . $row['productname'] . '" /></td><td>' . $row['type'] . '</td><td>' . $row['company'] . '</td><td>';;
echo '<input name="action" type="hidden" value="edit_ok" />';
echo '<input name="productid" type="hidden" value="' . $row['productid'] . '" />';
echo '<input type="submit" value="確認" /></form></td><td></td></tr>';
} else {
echo '<tr><td>' . $row['productid'] . '</td><td>' . $row['productname'] . '</td><td>' . $row['type'] . '</td><td>' . $row['company'] . '</td><td>';
echo '<form action="" method="post">';
echo '<input name="action" type="hidden" value="edit" />';
echo '<input name="productid" type="hidden" value="' . $row['productid'] . '" />';
echo '<input type="submit" value="編輯" /></form></td><td>';
echo '<form action="" method="post">';
echo '<input name="action" type="hidden" value="delete" />';
echo '<input name="productid" type="hidden" value="' . $row['productid'] . '" />';
echo '<input type="submit" value="刪除" />';
echo '</form></td></tr>';
}
}
echo '</tbody>';
echo '</table>';
}
else {
echo '目前沒有資料';
}
$pdo=null;
?>
<?php require_once 'view/footer.php'; ?>
留言
張貼留言