我在 “PHP + MySQL 学习笔记(一)— 延续前期 HTML + CSS 规划 插入 PHP 程式做画面输出” 这篇笔记里做了一个卜卦的 HTML 画面,也做了一个 MySQL 资料库。后来我在网路上找到一个 六十四 卦的清单,像下面这张图:六十四卦名(装卦表)

这里面的每一个小块,恰好是 上一期资料画面的一部分

如果把 “六十四卦名(装卦表)” 变成一个资料库,那么可以节省输入的时间和提高正确性。所以,今天要做一个 (装卦表)的资料库。我们把计划节奏分段成:

- 建立画面(page.php)
- 建立参数/栏位名(Header.php)
- 建立栏位参数阵列(Header.php)
- 建立php 增加 SQL 栏位的php 程式(略)
- 建立php程式输出 SQL 资料(update_SQL.php)
- 建立 php程式更新SQL 资料(update_Html.php)
- 建立php程式新增 SQL 资料
- 建立php程式删除 SQL 资料
- 建立php程式输出寻找的 SQL 资料

1. 建立画面(page.php)

每一个小方格的资料是这样的

我们把前面的 HTML 画面修改后,得到我想要的画面像这样:

换成 SQL 的栏位名称,像这样:

2. 建立参数/栏位名(Header.php)

现在开始建立 SQL 的 TABLE,结果像这样

这个表的结构也就是把 前一期的笔记内容修改,删减后的来的。我们同时把他做成 PHP 的参数档 Header.php

<?php
// header.php
//select  fields from pridictresult table
/*******************************/
/*`id`, `guawei`, `guaname`, `SNo`, `guashou`, `guaxu`, `requestfor`, */
$guaname = 'guaname';
$SNo = 'SNo';
$guashou = 'guashou';
$guaxu = 'guaxu';
$requestfor ='requestfor';
$id ='id';
$guawei ='guawei';
/*******************************/
$prefix_sql = array('id','guawei', 'guaname', 'SNo', 'guashou', 'guaxu', 'requestfor'  ); $shiying_sql=array('shiying_0', 'shiying_1', 'shiying_2', 'shiying_3', 'shiying_4', 'shiying_5');
$liuqin_sql=array('liuqin_0', 'liuqin_1', 'liuqin_2', 'liuqin_3', 'liuqin_4', 'liuqin_5');$tuyinyang_sql=array( 'tuyinyang_0', 'tuyinyang_1', 'tuyinyang_2', 'tuyinyang_3', 'tuyinyang_4', 'tuyinyang_5');
$ganzhi_sql=array('ganzhi_0', 'ganzhi_1', 'ganzhi_2', 'ganzhi_3', 'ganzhi_4', 'ganzhi_5');
/******************************************************/
?>

再来,开始写 PHP 和 MySQL 互动的程式。

3. PHP 和 MySQL 的互动

  1. MySQL 的指令窗口像下图,我们可以点击窗口下的按钮产生几个基本架构。我们先点击 INSERT,产生一个字串,意思是按照这个架构填写然后点击右下角的 执行 就可以完成想要的输入了。

    我把 上面的字串拷贝下来贴在 word 文字编辑器上修改,像下图,然后贴回 MySQL 上验证。如果 ok 就按照 这个格式一笔一笔填入。

    下面的图是用“地天泰” 的资料输入的结果

    下面的图是 MySQL 在输入正确后的显示

4. 建立php程式输出 SQL 资料(update_SQL.php)

PHP 是透过下面这个公式和 MySQL 沟通,其中 $sql_query 就是要写进去的指令。

$result = mysqli_query($conn,$sql_query)

譬如,这个样子的操作就可以把 guawei=‘00’ 的资料取出,再放进
$pugua_result 变数里,然后就可以使用 MySQL 的资料了。

$sql = "SELECT * FROM `sixtyfour` WHERE `guawei`='00'"; //选择资料档 $ID
$result = mysqli_query($conn,$sql);
$pugua_result=mysqli_fetch_array($result);  //把SQL的资料放在 $pugua_result

我们要把 这个 MySQL 的指令,拆成几段,然后方便用 php 写一些变化的程式,把要的资料填在这个字串里
//
UPDATE sixtyfour SET id=[value-1],id2=[value-2],guawei=[value-3],guaname=[value-4],SNo=[value-5],guashou=[value-6],guaxu=[value-7],requestfor=[value-8],shiying_0=[value-9],shiying_1=[value-10],shiying_2=[value-11],shiying_3=[value-12],shiying_4=[value-13],shiying_5=[value-14],liuqin_0=[value-15],liuqin_1=[value-16],liuqin_2=[value-17],liuqin_3=[value-18],liuqin_4=[value-19],liuqin_5=[value-20],tuyinyang_0=[value-21],tuyinyang_1=[value-22],tuyinyang_2=[value-23],tuyinyang_3=[value-24],tuyinyang_4=[value-25],tuyinyang_5=[value-26],ganzhi_0=[value-27],ganzhi_1=[value-28],ganzhi_2=[value-29],ganzhi_3=[value-30],ganzhi_4=[value-31],ganzhi_5=[value-32] WHERE 1
/
****/
第一段,固定不变字串 – UPDATE sixtyfour SET

$sql_query_p = "UPDATE `sixtyfour` SET  ";

第二段,变化、给新的值的字串 — id=[value-1],id2=[value-2],…
譬如,下面这一段 MySQL 的需求,编成 PHP 的表现。
MySQL 的需求

`shiying_0`=[value-9],`shiying_1`=[value-10],`shiying_2`=[value-11],`shiying_3`=[value-12],`shiying_4`=[value-13],`shiying_5`=[value-14],

PHP 的表现

 $sql_shiying ="";
for ($i=0; $i < 6; $i++) { $sql_shiying .= "`shiying_";$sql_shiying .= $i  ."`= '";$sql_shiying .=   $_POST[$shiying_sql[$i]]. "', " ;
}

可以用 echo 指令打在 HTML 上检查。

echo  $sql_shiying ."<br>"."<br>";

第三段,结尾 — WHERE <条件>
譬如下面的 php 程式段落

$sql_query .= "   WHERE `guawei` = '". $_POST['guawei'] ."'";// SQL 的 update 字串完成 完成

至于最后的结果是不是正确? 我们只要用 echo 打在 HTML 上,再拷贝,贴上 MySQL 指令区试试就知道了。

5. 建立 php程式更新SQL 资料(update_Html.php)

一次输入那么六十四笔资料,难免有错,看下面的图就知道一个一个矫正是有困难的。所以,需要设计一个可以更新的画面。

下图是想要的结果。但是,应该还要有一个浏览所有资料的页面,如后面一张图


在web上的程式,每换一个页面就是换一组程式;程式之间的参数转移是一个不容易维护的问题! Database 的好处就是,我只要转移一个 关键指标,其他的都存在 MySQL 里面,需要时候再叫出来,转移之前存放好就可以了。
所以准备用三个 PHP 程式 完成这个检查后修改的流程。

6. 建立php程式浏览 SQL 资料(page_Html.php)

整个显示区分三大块 Table

下面是完成的程式。接着记录一些传输上的关键指令。

<?php
// file name :page_Html.php
header("Content-Type: text/html; charset=utf-8");
include("connMysql.php");//預設每頁筆數
$pageRow_records = 1;
//預設頁數
$num_pages = 1;
//若已經有翻頁,將頁數更新
if (isset($_GET['page'])) {$num_pages = $_GET['page'];
}
//本頁開始記錄筆數 = (頁數-1)*每頁記錄筆數
$startRow_records = ($num_pages -1) * $pageRow_records;
//未加限制顯示筆數的SQL敘述句
$sql_query = "SELECT * FROM `sixtyfour`";
//加上限制顯示筆數的SQL敘述句,由本頁開始記錄筆數開始,每頁顯示預設筆數
$sql_query_limit = $sql_query . " LIMIT " . $startRow_records . ", " . $pageRow_records;
//以加上限制顯示筆數的SQL敘述句查詢資料到 $result 中
$result = mysqli_query($conn,$sql_query_limit);
//以未加上限制顯示筆數的SQL敘述句查詢資料到 $all_result 中
$all_result = mysqli_query($conn,$sql_query);
//計算總筆數
$total_records = mysqli_num_rows($all_result);
//計算總頁數=(總筆數/每頁筆數)後無條件進位。
$total_pages = ceil($total_records);$pugua64_result=mysqli_fetch_array($result);include("Header.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>六十四卦排列</title>
</head>
<body>
<h1 align="center">六十四卦 排列</h1>
<p align="center">目前資料筆數:<?php echo $total_records;?> </p><table style="background-color: #3df; font-size: 20px; " align="center"><tr style="background-color: #fdd"><th>卦 组 合'guawei'</th> <th> 64 卦 名 'guaname'</th> <th>卦  值 'SNo'</th><th >卦 首'guashou'</th> <th >卦 序'guaxu'</th> <td style="text-align: center;"></td></tr><form action="update_Html.php" method="post"> <?phpinclude("Header.php");/*******1**********/echo "<input name='id' type='hidden' value='".$pugua64_result['id']  ."'>";echo "<td><input type='text' name='guawei";           echo "' value='". $pugua64_result[$guawei];echo "' > </td>";/*******1**********/echo "<td><input type='text' name='guaname";echo "' value='". $pugua64_result[$guaname];echo "' > </td>";/*******1**********/echo "<td><input type='text' name='SNo";echo "' value='". $pugua64_result[$SNo];echo "' > </td>";/*******1**********/echo "<td><input type='text' name='guashou";echo "' value='". $pugua64_result[$guashou];echo "' > </td>";/*******1**********/echo "<td><input type='text' name='guaxu";echo "' value='". $pugua64_result[$guaxu];echo "' > </td>";echo "<td> <input type='submit' name='direction' value='修改' />";echo "<td> <input type='submit' name='direction' value='刪除' /></td>";//?></form></table><h5  align="center">**************************************</h5><table border='1' style="background-color: #3df; font-size: 20px; padding: 2px"  align="center"><tr style="background-color: #fdd" ><th colspan="1">世  应</th> <th colspan="1">六   亲</th> <th colspan="1">卦    象</th><th colspan="1" >干 支</th>  <td style="text-align: center;"></td></tr><!-- 資料內容 -->       <?phpfor ($i=5; $i >=0 ; $i--) { echo "<tr style='height: 10px'>"; echo "<td > </td>";echo "<tr border='1'>";          /*******1**********/echo "<td style='text-align: center;' > 世应_".$i." : ";             echo  $pugua64_result[$shiying_sql[$i]] ." </td>"; /*******2**********/echo "<td style='text-align: center;' background-color: #61f>  六亲_".$i." : ";              echo  $pugua64_result[$liuqin_sql[$i]] ." </td>";/*******3**********/echo "<td style='text-align: center;' border='1'>  阴阳图_".$i." : ";   echo $pugua64_result[$tuyinyang_sql[$i]] ." </td>";/*******7**********/echo "<td style='text-align: center;' border='1'>  干支_".$i." : ";            echo  $pugua64_result[$ganzhi_sql[$i]] ." </td>";/*******8**********/echo "</tr>"; }
?>
</table><table border="0" align="center"><tr><?php if ($num_pages > 1) { // 若不是第一頁則顯示 ?><td><a href="page_Html.php?page=1">第一頁</a></td><td><a href="page_Html.php?page=<?php echo $num_pages-1;?>">上一頁</a></td><?php } ?><?php if ($num_pages < $total_pages) { // 若不是最後一頁則顯示 ?><td><a href="page_Html.php?page=<?php echo $num_pages+1;?>">下一頁</a></td><td><a href="page_Html.php?page=<?php echo $total_pages;?>">最後頁</a></td><?php } ?></tr>
</table>
<table border="0" align="center"><tr><td>頁數:</td><?phpfor($i=1;$i<=$total_pages;$i++){echo "<td>";if($i==$num_pages)echo $i;elseecho "<a href='page_Html.php?page=".$i."'>".$i."</a>";echo "</td>";  }?></td></tr>
</table>
</body>
</html><?phpmysqli_close($conn);//關閉資料庫連接
?>
  1. Form<form action="update_Html.php" method="post"></form>
    把要传送的资料要放在两个 HTML 的 form 中间,然后用 input 的 type = ‘submit’ <input type='submit' name='direction' value='刪除' /> 执行后就进入 HTML 的 POST 暂存器里面。php 会在 update_Html.php 这个程式里 用 $_POST[name] 取出。在这一行指令 name 是 direction, 取出的值是 ‘刪除’

  2. 一般用 input 的时候 会给一个 “空格” 填资料,但是在修改的情形下,我们会希望带入原始的资料,我们只要修改不对的项目再存回 MySQL 就好了。这里示范几个 《input》带入的使用

<?php
echo "<title>Result of HTML input</title>";
echo  "姓名1:".$_POST["Email1"]."<br>";
echo  "姓名2:".$_POST["Email2"]."<br>";
echo  "姓名3:".$_POST["Email3"]."<br>";
echo  "姓名4:".$_POST["Email4"]."<br>";?>


总结这次的技巧是

  1. 从 page_Html.php 程式里 用 《form》 的方式 把 guawei 的值传给 update_Html.php
  2. update_Html.php 用 P O S T [ g u a w e i ] 把 卦 位 值 取 出 , 再 用 ‘ _POST[guawei] 把卦位值取出,再用 ` P​OST[guawei]把卦位值取出,再用‘result = mysqli_query( c o n n , conn, conn,sql_query);` 把 MySQL 的资料取出。
  3. update_Html.php 用 《form》 的方式 把修改后的值传给 update_SQL.php。
  4. update_SQL.php 用 P O S T [ ] 把 修 改 后 的 所 有 值 取 出 , 再 用 ‘ _POST[] 把修改后的所有值取出,再用 ` P​OST[]把修改后的所有值取出,再用‘result = mysqli_query( c o n n , conn, conn,sql_query);` 把更新的资料写入 MySQL 。
  5. update_SQL.php 用 header("Refresh: 0; url= page_Html.php"); 的 php 功能跳回 page_Html.php 再检查修改下一条。

以上 这一次笔记完成。

PHP + MySQL 学习笔记(三)--- 分页显示 MySQL 资料表,使用 PHP 程式做分页 page 画面输出,PHP\HTML\MySQL 的穿插使用相关推荐

  1. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  2. MySQL学习笔记(三)查询

    写在前面:本篇为作者自学总结,学习内容为课堂所学和网络学习笔记汇总,对于内容引用部分在文中和文末注明. 文章仅供参考,如需深入了解,请查阅MySQL参考手册.附上下载链接: 链接:https://pa ...

  3. mysql学习笔记三 —— 数据恢复与备份

    要点: 1.存储引擎 2.导入导出 3.备份与恢复 查看当前数据库中的所有表 use db1: show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式 ...

  4. MySql学习笔记(一):创建数据库,创建表,加载数据,数据检索

    一.准备工作 1.1 安装mysql 一路next的操作这里就不做记录了. 1.2 配置mysql 安装完成后,将下面路径C:\Program Files\MySQL\MySQL Server 5.7 ...

  5. mysql的基本数据类型_mysql基本数据类型(mysql学习笔记三)

    Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符号 ...

  6. MySQL学习笔记(三)

    准备好一个表的员工,接下来都是对这个表进行操作 一,数据表里内容的修改和删除(更改,删除) 1.1增加一列数据 格式:alter table 表名 add column 列名 数据类型(数据长度); ...

  7. MySQL学习笔记三:  1. 多表查询     2. 事务     3. DCL

    ## 多表查询:     * 查询语法:         select             列名列表         from             表名列表         where.... ...

  8. MySQL学习笔记-03高级查询、多表联合查询、聚合函数、子查询、视图、存储过程、权限、

    关于作者 金山老师:从事Java.大数据.Python职业化培训6年,项目管理.软件开发14年.欢迎添加我的微信号[jshand],最近建了一些微信交流群,扫描下方二维码添加公众号,回复:进群 文章目 ...

  9. Mysql学习笔记day1 --三天学完mysql所有知识点

    Mysql 超全MySQL学习笔记,三天就可以学会熟练运用SQL语句,干货满满,文章末尾有相应的练习题,可以多练练加深印象,希望我的文章对你有所帮助 一.服务器 1.什么是服务器?用于提供共享资源文件 ...

最新文章

  1. 一卡顶四卡,清华推出工具包BMInf玩转百亿大模型
  2. but was actually of type 'com.sun.proxy.$Proxy**'的两种解决方法
  3. python将变量i的值增加1_Python中变量自增、i+=x与i=i+x、is与==
  4. python函数模块讲解_课堂练习讲解_模块化函数封装
  5. OC如何跳到系统设置里的各种设置界面
  6. ABP入门系列(17)——使用ABP集成的邮件系统发送邮件
  7. GBK、UTF-8 快速转码工具 —— Notepad++
  8. Linux中的报错命令,Linux学习教程-Linux下命令的一些异常情况
  9. 手写token解析器、语法解析器、LLVM IR生成器(GO语言)
  10. 20145203盖泽双《网络对抗技术》后门原理与实践
  11. cisco帧中继实验
  12. BiNGO的GO分析
  13. android 网络编程 笔记,【Android 应用开发】Android 网络编程 API笔记
  14. Android模拟器网络连接问题解决,解决小蚁安卓模拟器网络异常无法连接的方法...
  15. 安信证券 | 神州信息:金融软服增长较快,行业信创蓄势待发
  16. 静态路由和默认路由小结
  17. 数据的正态分布验证和方差齐性检验
  18. 全网最全面的npm包管理学习
  19. R语言实战笔记 多项式回归
  20. 学好编程之GOC语言快速入门(1)

热门文章

  1. 79.纯 CSS 创作单元素麦当劳金拱门 Logo(原文)
  2. ansible的copy模块
  3. vista系统下装xp
  4. 操作系统概念笔记——第九章:虚拟内存
  5. DXF00-00 时间:2021.11.30-2021.11.30 关键词1:Autodesk CAD 关键词2:脱机帮助文档 关键词3:下载及使用
  6. 全球超级计算机排名500强榜单每年发布,全球超级计算机500强最新排行
  7. android invalidate 不刷新,invalidate() 之后,为什么不调用 onDraw?_android_开发99编程知识库...
  8. word关闭时卡死_英雄联盟最近再现重大Bug:游戏读取界面完全卡死
  9. 如何阻止华为网盘插件修改搜狗浏览器主页
  10. 三十而立,感谢天搜这群小可爱们陪我梦想如初