00:00
好,现在啊,我们把搜索把这个叫分页已经做完了,它也优化完了哈,那用起来很方便啊,那么下面下面一个问题呢,就是做搜索啊,搜索的话就大家想怎么搜。想怎么搜索啊?就是选按什么收是吧,比如说按名字搜,按性别收,按什么收是吧,是这意思吗?对吧,所有类别收就直接收的时候啊,就是选第一个版,这里别直接搜索。你们琢磨你们咋收都行,浏览器肯定F,那肯定不对呀。那就所有版,所有的那个字段版。那就都做。来找到这个位置置,看到上面这个位置,不不就在这个位置嘛,对吧,就所有所有字段是吧,所有字段。字段,然后这个位置按按手机号对吧,手机号然后按什么昵称,还要按什么,咱也没有邮箱没别的呀。
01:01
没别的呀,性别身份。性别身份行吧,我给你写俩字,你想做啥自己做啊,身份可以吧。可以放心对吧,啊做这三个啊,所有字读啊所有这个字段,它的结果是等于二,然后呢,手机号是phone,然后呢,昵称是ni name别是,然后身份是对吧,搜哪个字段就把哪个字段名字给我去。明白吧,这第一个哈,然后第二个呢,你搜索的关键字,搜索关键字是不是在这个位置呢,所以这个位置呢,也给它写个name哈,Name等于我们的keyor key。YWO。R。对吧,好,然后下边呢是一个按钮,接下来呢,能点击提交把这个干掉。等提交不了哈,然后呢,看上面这没有是吧,Name等于select搜索方式可以吧,看到了吧,好,然后接下来呢,套一个。
02:05
你首先是不是得把这个内容能提交到我们的那个方法里边去啊,啊,然后你才能做搜索,懂我意思吧,地址不用写,它就是本地啊,MY的不写就是get对吧,只要你有一个放表单就行了,行了,能对吧,那么请问这个位置一点击搜索,它把数据提交到哪去了。这个位置一点搜索,比如说所有字段。包含里的点击包含里的点击搜索到哪去了?Select过来了,是不是还是提交到当前页面,当前页面的那个函数,也就说还在这个位置,听懂了吗?还提到。对不对,好,提交到这个位置以后,我们要判断了哈,判断它有没有搜索条件,如果有搜索条件,我们应该按搜索条件搜,如果没有就是说。是不是这个意思?对不对,好,那么怎么去做呢?怎么做呢?
03:03
首先这两个FLT啊改一下啊改一下这个方法啊,肯定不能直接插出有对吧?好所以这个地方呢,来首先判断判断是否有搜索条件,有搜索条,搜索条件件条件啊怎么判断呢。那个select等于我们的request点儿get.get括号。括号查,这个叫select对吧,如果没有的话,默认文档对吧,然后还有那个叫keyword keyw s,如果有就拿过来,没有的话对不对,这是先接收。啊,这叫接收搜索流量,接收搜索流量量,那么接下来好判断了吧,一步判断,如果select它的结果为真。有搜索条件吗?是不是有搜索条件?有搜索条件如果没有的话怎么办?二、下面就是没有说没有说索权限,那就是搜索有。
04:11
是不是这个意思思对吗?对不对啊,好,有错条件怎么做。没有收入条件,现在肯定按这个收的,对吧吧。对不对,对吧?啊,其实你可以这么做哈,来date放到最上面去,不管怎么样,我是不是都要查,而且我这个地方是过滤查的,还记得那个江国框架我们说的,说他的查询是你不用数据他就不查询,对不对?什么时候用数据是不是是不是什么时候查,所以我们可以上来就先查出来,查出来啊先定义一个变量,然后接下来如果有所索条件,在这个变量里边继续按受索条件搜索,懂意思吧,有所有条件的时候,我们搜索条件是不是有的还不一样,好所以if判断你当前的select type结果如果等等于什么呢?二是不是按所有条件搜入,按照所有叫按照。
05:02
所有所有所有字段进行条件,条件线索,条件搜索,其实不是按所有字段,是按指定的多字段,按照多字段。多字段条件速度懂意思吧,你所有条件有必要吗?你你连那个什么都输出来没有意义,听懂了吧,就按指定的几个字段就可以了,明白了吧,好,这是一种条件啊,一种来先pass掉啊,那如2212,哎,咱们是二一说吧。是吧?2IF如果select tab,它等等于什么,那个叫phone,我是不是就得按手机号,按手机号,按照手机号进行搜索对吧。是不是这个逻辑啊,那如果你是要按照那个叫什么来萨克斯性别搜索是吧,那就是按照性别。性别哦,还有一个内是吧,来复制。
06:00
复制。妮妹妹对吧,然后还有什么复字再来。还有身份是吧,身份叫。TYPE是吧,按照身份身份份进行诉讼对不对?这是不是多种条件,如果都没有,都没有,那默认就对吧,就是所有呗。对不对啊,首先我们先看啊先看嗯,按照这个叫做什么呢?按照这个我们先指定的,比如说按照手机号的这个条件,怎么速度可以吧,先看这个啊,Date等于date是不是我们就date这个变量,是不是刚才那个我重新复值能看到吧,然后这个date是不是刚查出来的结果,查出来结果的同时,然后点上FLTR括号。然后按某个字段条件速度,我是不按按手机号是了,手机号怎么搜,是不是包含这个手机号就可以了,对吧,比如说你搜了个那个那个138对吧,手机号里边包含138是不就算了,懂我意思吧,所以它这个位置怎么办呢?是用缝下划线,下划线两个连续的下线,然后呢,搜索的条件变成什么呢?变成那个叫做模型查询对比的啊找一下。
07:09
模型查询这个方法叫什么什么啊,是否包含看到了是否包含对。我不知道你们看了没有这个东西。看好,诶把这个keywords放到这是吧,按照手机号的字段给我进行搜索。对吗?对吧,然后那你这个nickname很简单呀,把它换成nickname。对吧,然后把这个去掉,然后你这个叫什么sa也是一样的,把sa放到这。看到吧,然后你这个叫usual ta是吧,把这个us放在这。把pass关掉,看到了吗?对不对?好,那我们先看一下,先看这个条件对不对,来刷退回去。这个我先不管,看一下这是所有的数据啊,所有数据好,然后我们搜索。哎,这里边少个东西啊。
08:00
一共多条数据和那个叫一共多少页是没有。啊,需不需要显示呢。嗯,如果需要显示的话,就在那个我们那个模板引擎里边,那个里面就可以直接那个获取应该可以吧。算了,我就直接写到那个叫什么吧,写到这个页面的这个位置吧吧,写到这儿行吗?我们甭管他有多少个了,OK吗?写到这里可以吧。这位子RR2啊,然后呢,总页数总页数总页数啊,还有一个总条数,总条数可以吧,总数有多少,总条数有多少,总数总总做来。就这。Sorry,画括号画括号啊,然后呢,加这个个对吧,总条数怎么办呢。一共多少条,怎么办?乘以十这个方法有点。
09:01
那万一呢,我分页按五条分呢,这是不是有个count方法,对,有个count方法啊,所以这个是data点点这个方法是不是就可以了啊,这样的话,一会我们搜索的时候,我们看到大概有多条数据看了啊,丑不丑你们自己己调吧,可以啊,反正就是我们自己知道大概有多少数据,因为我们这个数据是大量重复的,明白我这意思吧吧啊,那么接下来按手机号说啊,按手机号他现在我们一共啊,一共有1024条数据啊,按手机号说就是3017可以吧,点击搜索看上面这个位置,凤和3017传过去了吧,好看一下是不是所有都是3017的的。对吗?256条。没错吧,兄弟们啊,这个搜索条件达成了吧,好,然后呢,换成这个叫做什么昵称,昵称搜张三张三,那那就是我重复了多少遍,它就有多少条数据,对吧吧,点击搜索张三。一条吗?哦,我是后来加的是吧?啊对,那这个结果是不是也没错对吧?好,然后按照那个叫。
10:02
性别空。性别那个叫什么来着。啊,算了,没没有是吧,啊有呃,身份有点问题啊。我们数据库里存的不是那个叫什么什么。不是,我们数据库里存的不是狼人,我们数据库存的是零一那个东西还记得吧。对吧,啊,全都是零一,嗯,我们先不说这个个,先不说这个啊,先就手机号昵称这两个先搞定了,对吧?好大家来想一个问题哈,那我们先看这边,如果是哦怎么办。你看如果我现在按照指定字段,我现在就按四个字段搜索,那你就写了四个判断对吧,要是有15个字段呢。写15个条件。对不对,是不是很麻烦。能理解吗?那怎么办呀,你看其实这几个就哪里有变化,就是这个东西有变化。对吗?那你怎么把select放到这里吗?
11:02
肯定肯定就不对了,这这这如果你放在这这代表什么,代表到你这个模型里边去搜索这个字段听懂了吧,所以你不能这么放,你边量没法往里写,明白这个意思吧。懂我意思哈,所以你怎么办呢?怎么拼接啊,对,你可以在外面拼接完再往里扔,那没问题。他往里放那可以对,但是你说你直接在这里拼,那不好使。懂我意思吧,思啊,所以这个位置啊,我们可以这样写,直接写成20对吧,然后把这个复制过来啊,这个地方全部把它换成,换成一个叫什么。你换成变量是肯定也不对。对吗?们画的变量肯定不对啊,对,但是那个关键字还记得吧,ER吧,ER可以吧,然后ER等于什么呢?等于一个字点。字典的值是谁谁?比如说默认是这样的对吧,然后冒号这边的键应该是keyword,这是不是一个字典,字典的话是不是就直接能传进去了,对吧?好,那么把它换掉是不是就可以了。
12:09
括号换成select前面加一个。这是字符串吧,这字符串一个变量一解析是不是就变成下面那个格式了,对吧?那么下面这几个是不是都不需要了。对吗?对不对啊,这第一步啊,第一步我们先看一下对不对哈,先不测别的,就测那个叫什么。嗯。就是这个手机号和昵称这个啊,来3017对来搜索。对吗?250条数据对不对,然后按昵称里。哎,不对是吧,李四是吧。然后点击搜索对吗?对不对啊,这个是不是搞定了,所以这就是为什么我在写其他字段的时候,这个字段的名字就等于我们列的那个名。
13:00
能理解吧,嗯,好了好了好了。那剩下再来看看,再来看这个所有条件,或者说多字段的这个条件搜索啊,多字段的条件搜索呢,在我们的这个,呃,这个这个。方在我们这个底张框架里边,他给你提供了一个方法,叫做Q对象,其实他写是句,这个是句,大家还琢磨一下怎么写。句应该怎么写,是不是select行from,举个例子叫us好吧,是不是多个条件对吧?比如说name等于啊name like对吧?Like那个百分号,百分号号。A是吧,然后哦,这个叫什么。啊,Like啊,或者是手机号什么on,然后like right是不是应该用all的语句连接啊,对不对,核心就是用or的语句嘛,听懂了吗?是不是叫all的多个字段啊,什么用all呢?我们用我们用的这个叫过滤器,它是and的条件,听懂了吗?并且条件。
14:06
啊,但是在这个过滤器里面,你写的多个条件之间,你可以用一个叫Q对象来解决这个问题。看到对,你看关键字参数的查询输入,这个叫里面的内容是and编辑在一起的,如果你需要执行更复杂的,比如说在out语句使用的是使用的是QQ对象,Q对象这里这个位置是链接啊,就原文的链接地址,你可以打开自己去看,好吧,然后如何用它进行查询呢?你首先导入Q对象,然后在你的查询里边用Q括起来,用Q对象实例化,看到吗?实例化这个是字段,这个是包含的意思对吧?对,然后中间多个字段,中间用竖线。的就可以了。就可以了,所以我们换成换成我们的写法,就是把这个方法复制放到我们这个位置来,在上面先导入啊,在这个位置吧,导入导入Q对象对吧,然后接下来贝塔等于我们的贝塔点F2T括号,第一个是Q对象括号。
15:04
什么字段,我们的字段条件是那个第一个是按手机号对吧,所以这个位置是P下线下线啊这个方法复制拿过来放这对吧,它的结果嗯,这第一个是吧,我看一下它后边的一个结果是等于一个什么值是吧,等于我们的。呃,叫什么呢?等会儿啊,我写错了,看一下。他应该是写到里面去啊,写到里面去这个位置位置。对象写到里面,等于我们的KWQD对吧?好,然后出现在第2Q对象继续写写。还是当姐?那上面这个语句就等于下边这个听懂了吗?Ni妹,然后再来搜索。再来就是那个继续写竖线,然后再来一个个,嗯,按什么说说按性别是吧,对这么说,那么这里边每一个都包含,看到每个都包含,那就是上这个跟下一样的。
16:03
听懂了吧?啊,上面已经跟下面一样了啊,那么用这个方法来解决这个问题啊,好,我们看一下行不行啊。来在这个位置刷新一下啊,然后在这个位置所有字段,然后我搜那个呀,他手机号。昵称我想想啊。改一下数据,改一下数据,要不然不好查,这样这个是张三对吧,手机号里边我们写一个三行吗。行吧,我只是为了测试能懂我的意思吧,或者这个位置是等于1331222对吧?那这个位置我写个1122行吗?哦,不能写他是吧,是吧。啊,写这个吧吧,写这个个122 OK,听懂了吗?啊,然后这样的话我们方便测试啊,所以这边我们收入的时候搜122先搜一下。这个是里边是不是他包含一号对吧,手机号包含,然后这个是不是昵称包含是不是都可以啊对吧,然后呢,还有一个叫做那个叫三是吧,三来搜索走你。
17:10
看到吗?张三的和韩三的,这是两个字段,如果别的字段也有类似的数据,是不是都能搜索出来?嗯,那么你要搜索哪些字段,你就在这里写哪些就可以了。明白了吧,这个问题,两个问题是不是搞定了对吧?好,两个问题搞定了,好,那接下来还有一个问题,就是像这个身份性别的问题,性别我们数据库存的是。零一对吧,身份存的也是0123。你在这里搜的可不是0233,你在这里搜的是什么?对呀,男女或者说什么狼人啊啥的,对不对啊,怎么才能到数据库里边收到对应的那个数据,按零一搜搜。判断男转成女,女转成男好吧,男转成零啊,男转成一是吧,女转成零啊,这个是性别的好不算身份呢。如果人家收身份的时候就写了这个呢?
18:01
啊,身份当然也可以用狼人等于零是吧,平民等于义之类的这样搜索这样判断对吧?但人家就写了一个狼,能不能按狼搜索呢?狼就收了。行不行?那搜索的意思也是搜索身份里边包含狼的呗,对不。那怎么办呢?他输入狼或狼人,或者是狼的狼人的其他的含义的关键词。都按零或,或者是就按狼人的那个对应的那个数字是不是。明白了吗?听懂啥意思吗?对,你可以做个字典,做一个数据字典好了,这个内容啊,就写这么多了,好那现在有一个问题,比如说他按照手机号122搜索的。返回到以后这地方查询的没错是吧,那这边呢,不对,这边应该是122显示和这个内容。能理解,就是我当天按什么条件搜索的,他应该有听懂了吧,能理解意思吧,然后这边搜索的那个条件和字段啊,和对应的这个查询的这个这个关联字应该都有怎么做啊。
19:07
你看这些内容是不是以参数的形式教给你的in这个函数了,那么在我们这个模板里边有没有一个的方法能够接受,有吗?是不是能接受这个东西?反正就是还有点蒙圈,你看我们这里是不是已经用到了request了,就证明在那面是不是可以用到了request。来找到这个上面的位置,来在这里哈,想找到它输入的内容,这里边加一个value就得了吧,CE等于画括号引号啊,画括号,画括号e.get方式传递的那个叫WDWD的内容。对吧,来先看一下页面对不对,刷新对吗,对吗。来3017来搜索回来之后是不是显示3017呢,对吗?然后但这个还没还不对是吧,这个怎么做呢?来if否判断if request点点get点。
20:09
Select它的结果如果等等于谁啊,等等于你当前的这个方法是吧,当前的前面这个值是吧,前面这个字怎么办呢?我们看一下啊,退回到前头来。退回到前头来好,到这里到这里到这里好,然后接下来。这个位置,然后复制CTRLC。走走走走往那一对吧。然后呢,如果对,就是select select对吧,括号百分号。AND1婆婆。对吧。是不是这个意思思就是我你如果选择的是这个,我就给你加一个,如果不是就不加呗,对吗?来看页面刷新对吗。了判断。
21:02
行了吧。嗯,好,这个搜索的问题就到这里结束好吧,啊,性别的这个你可以加个普通判断对吧,然后身份的这个你可以做个字典,也可以按判断来做,我就不管了,你想做成什么做成什么可以吧?啊,反正就是怎么收你是知道的,对吧,怎么去传参你也清楚,那中间的逻辑我也给你写了一部分,剩下的你自己写OK吧。这里边这些都搞定了吧。搞定了哈,好,那么现自己来看。呃。我们分页做完了,搜索也做完了,现在有一个问题。大家猜一下什么问题?你看啊,我按手机号3017收的的,他搜出来了1000,呃,那个200多条数据对吧,而且有分页是吧,一共翻了26页,那如果我翻到下一页是不是也也是3017的。对不对,所有的页面里面是不是应该是3617的对吗?好,点击下页找你。
22:03
看看结果还对吗?为什么不对了了。先说为什么不对了了。你上面还有那些刚才的参数吗?没了。但刚才好使,现在不好使了,使。这就是问题啊,考虑一下是什么原因引起的,怎么去解决这个问题啊,琢磨一下下。
我来说两句