2021-02-25

本文详细介绍了HTML中的表格和表单标签。表格标签用于处理、显示表格式数据,包括创建表格、设置属性、结构、标题及合并单元格等内容;表单标签主要负责数据采集,涵盖表单标签、input控件、label标签、textarea控件和下拉菜单等,还说明了各标签的基本语法和常用属性。

day_32_html表格,表单

1.表格标签

表格是较为常用的一种标签,但不是用来布局,常用来处理、显示表格式数据。

 

  1. 、创建表格

HTML网页中,要想创建表格,就需要使用表格相关的标签。创建表格的基本语法格式如下:

<table>
  <tr>
    <td>单元格内的文字</td>
    ...
  </tr>
  ...
</table>

在上面的语法中包含三对HTML标签,分别为 tabletrtd,他们是创建表格的基本标签,缺一不可,下面对他们进行具体地解释。

1.table用于定义一个表格。

2.tr 用于定义表格中的一行,必须嵌套在 table标签中,在 table中包含几对 tr,就有几行表格。

3.td /td:用于定义表格中的单元格,必须嵌套在<tr></tr>标签中,一对 <tr> </tr>中包含几对<td></td>,就表示该行中有多少列(或多少个单元格)。

注意:

1. <tr></tr>中只能嵌套<td></td>

2. <td></td>标签,他就像一个容器,可以容纳所有的元素

  1. 、表格属性

 

  1. 、表格结构

在使用表格进行布局时,可以将表格划分为头部、主体和页脚(页脚因为有兼容性问题,我们不在赘述),具体如下所示:

<thead></thead>:用于定义表格的头部。必须位于<table></table> 标签中,一般包含网页的logo和导航等头部信息。

<tbody></tbody>:用于定义表格的主体。位于<table></table>标签中,一般包含网页中除头部和底部之外的其他内容。

表头单元格一般位于表格的第一行或第一列,其文本加粗居中,如下图所示,即为设置了表头的表格。设置表头非常简单,只需用表头标签th</th替代相应的单元格标签td</td即可。

 

  1. 、表格标题

定义和用法:caption 元素定义表格标题。

<table>

       <caption>我是表格标题</caption>

</table>

注意:

1. caption标签只存在表格里面,必须紧随 table 标签之后。

2. 只能对每个表格定义一个标题。通常这个标题会被居中于表格之上。

 

  1. 、合并单元格

跨行合并:rowspan

跨列合并:colspan

合并单元格的步骤:

         1、先判断跨行合并还是跨列合并

        2、跨行合并用rowspan属性,跨列合并用个colspan属性  

        3、将rowspan 或者colspan写在第一个要合并的单元格上

        4、将合并的行数和列数写在指定的属性值上

        5、将多余的单元格注释掉

 

2.表单标签

表单,在网页中的作用不可小视,主要负责数据采集的功能,比如你可以采集访问者的名字和email地址、调查表、留言簿等等。
一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

应用场景:主要是应用在数据的提交,比如点击按钮发送数据到服务端。

(1)、表单标签

HTML中,form标签被用于定义表单域,即创建一个表单,以实现用户信息的收集和传递,form中的所有内容都会被提交给服务器。创建表单的基本语法格式如下:

<form action="url地址" method="提交方式" name="表单名称">
  各种表单控件
</form>

常用属性:

1. action在表单收集到信息后,需要将信息传递给服务器进行处理,action属性用于指定接收并处理表单数据的服务器程序的url地址。

2. method用于设置表单数据的提交方式,其取值为getpost

3. name用于指定表单的名称,以区分同一个页面中的多个表单。

(2)、input控件

input 输入的意思。在上面的语法中,input标签为单标签,type属性为其最基本的属性,其取值有多种,用于指定不同的控件类型。除了type属性之外,input标签还可以定义很多其他的属性,其常用属性如下表所示。

 

注意:

radio如果是一组,必须给他们命名相同的名字name,这样就可以多个选其中的一个啦。

Inputsize跟字体大小有关系,不设置的情况下,浏览器默认情况下,input默认的输入框的宽度就是169px

(3)、label标签

label标签为input元素定义标注(标签)。

lable作用:用于绑定一个表单元素, 当点击label标签的时候, 被绑定的表单元素就会获得输入焦点。

如何绑定元素呢? for属性规定label与哪个表单元素绑定。

<label for="male">Male</label>
<input type="radio" name="sex" id="male" value="male">

(4)、textarea控件

如果需要输入大量的信息,就需要用到textarea/textarea标签。通过textarea控件可以轻松地创建多行文本输入框,其基本语法格式如下:

<textarea cols="宽度 " rows="高度"默认是20
  文本内容
</textarea>

比如各个网站的评论回复框:

 

(5)、下拉菜单

使用select控件定义下拉菜单的基本语法格式如下:

<select >

  <option >选项1</option>
  <option>
选项2</option>
  <option>
选项3</option>
  ...

</select>

注意:

1. select中至少应包含一对option

2. option中定义selected ="selected "时,当前项即为默认选中项。

### 问题分析 MySQL 中的 `DATE_FORMAT()` 函数用于将日期时间值格式化为指定的字符串格式。根据官方文档,`DATE_FORMAT()` 返回的是字符串类型,而不是日期类型,这意味着当使用 `BETWEEN` 操作符进行比较时,数据库会按照字符串的字典顺序进行比较,而不是按照日期顺序进行判断。这可能导致不符合预期的筛选结果,尤其是在格式不一致或未补零的情况下。 例如,以下查询: ```sql SELECT * FROM your_table dt WHERE DATE_FORMAT(dt.establish_time, '%Y-%m-%d') BETWEEN '2022-01-01' AND '2022-02-28'; ``` 虽然 `DATE_FORMAT()` 返回的格式为 `YYYY-MM-DD`,但由于其返回值是字符串类型,数据库仍可能以字符串方式比较,导致某些日期格式不一致的记录被错误地包含或排除。 ### 问题根源 `DATE_FORMAT()` 的返回值是一个字符串,而不是日期类型,因此在 `WHERE` 子句中使用该函数进行范围筛选时,数据库会按照字符串的字典顺序进行比较。例如,`'2022-01-02'` 被认为在 `'2022-01-01'` 和 `'2022-02-28'` 之间,但如果 `establish_time` 中存在 `NULL` 或非标准格式的日期,可能会导致比较逻辑失效。 此外,使用 `DATE_FORMAT()` 会对性能产生负面影响,因为对列使用函数会阻止数据库使用索引,导致全表扫描[^1]。 ### 解决方案 #### 方法 1:直接使用日期列进行比较 最推荐的做法是避免对日期列使用任何函数,而是直接进行日期范围比较: ```sql SELECT * FROM your_table dt WHERE dt.establish_time BETWEEN '2022-01-01' AND '2022-02-28'; ``` 这种方式确保数据库按照日期类型进行比较,同时允许使用索引,提升查询性能。 #### 方法 2:使用 `CAST` 或 `CONVERT` 函数 如果需要对日期进行格式化后再比较,可以使用 `CAST` 或 `CONVERT` 将其转换为 `DATE` 类型: ```sql SELECT * FROM your_table dt WHERE CAST(dt.establish_time AS DATE) BETWEEN '2022-01-01' AND '2022-02-28'; ``` 该方法确保比较基于日期类型进行,避免了字符串比较的潜在问题。 #### 方法 3:使用 `STR_TO_DATE` 函数(适用于字符串比较) 如果数据存储为字符串形式,可以使用 `STR_TO_DATE` 将其转换为日期类型后再进行比较: ```sql SELECT * FROM your_table dt WHERE STR_TO_DATE(DATE_FORMAT(dt.establish_time, '%Y-%m-%d'), '%Y-%m-%d') BETWEEN '2022-01-01' AND '2022-02-28'; ``` 此方法确保格式一致性,并支持基于日期的比较逻辑。 ### 总结 `DATE_FORMAT()` 返回的是字符串类型,使用 `BETWEEN` 进行筛选时会导致字符串比较,而非日期比较,从而影响结果的准确性。为了解决该问题,应避免在 `WHERE` 子句中使用 `DATE_FORMAT()`,而是直接使用日期列进行比较,或结合 `CAST`、`STR_TO_DATE` 等函数确保比较逻辑的正确性[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值