设为首页 收藏本站
查看: 789|回复: 0

[经验分享] PHP定义列表顺序

[复制链接]

尚未签到

发表于 2018-12-11 10:24:01 | 显示全部楼层 |阅读模式
设置数据库
  由于数据通常* *存储在数据库中,我们会将我们的自定义列表顺序存储在SQL表列。 我使用MySQL仅仅因为我使用,但据我所知,所有的查询都应该使用的SQL数据库。
  首先,让我们来建立一个表。 创建一个名为“信息”的表和一个叫“作用”的列类型int和一个名叫“名称”列类型为varchar(10)。 这是一个查询:
创建表“信息”(“作用”INT非空,“名字”VARCHAR(10)非空
)  这是另一个查询来填充它与一些数据:
插入
“废话”(“作用”,“名字”)

(' 1 ',“拉里”),(' 2 ',“花”),(“3”,“萌”),(“4”,“玛丽”),(“5”,“简”);  注意:usort列中的值必须是唯一的为了这段代码的工作。 然而,不让这个主键列,auto_increment或独特。 如果你这样做,互换的作用值的查询会大喊大叫,你有重复的条目。
  但没关系,因为作用的目的并不是替换行id,你可能会,也可能已经是独一无二的,auto_incremented等等……
这个计划
  好现在我们已经与一些数据表设置,让我们来谈谈脚本。 这个示例脚本的目的是显示的数据表。 我们将列名称链接,这样我们可以通过列名排序。
  更重要的是,我们将创建“向上”和“向下的箭头对于每一行,这样我们就可以订单列表中我们如何想。 当你点击一个向上或向下的箭头,该脚本将查询发送到数据库交换数据表中的行高于或低于行。
  整个代码的方式- - - - - - - - - - - >
的代码
  这是整个脚本。 接下来的几页将打破下来一点点。
< ?php
/ /连接数据库
康涅狄格州美元=首先(“localhost”,“dbusername”,“dbpassword”)或死(mysql_error());
$ db=mysql_select_db(“dbname”,康涅狄格州美元)或死(mysql_error());/ /如果一个箭头链接被点击了……如果($ _GET[“dir”]& &$ _GET[“id”]){/ /得到增值供应商更容易处理
dir美元=$ _GET[“dir”];/ /扮演int和sql注入预防开关两美元的id
$ id=(int)$ _GET[“id”];/ /决定行我们交换基于美元dir开关(dir美元){/ /如果我们上升,交换1小于id情况下“了”:/ /确保上面一行来交换
美元掉期=($ id>1)?$ id- - -:1;打破;/ /如果我们掉下来,掉期是1比id情况下“下来”:/ /找出行是最高的
美元的sql=“SELECT count(*)从信息”;
美元的结果=mysql_query(美元的sql,康涅狄格州美元)或死(mysql_error());
$ r=mysql_fetch_row(美元的结果);
美元最大=$ r[0];/ /确保下面一行来交换
美元掉期=($ id ”;/ /列名称链接,sortby
回声“< td > < a href = ' { $ _SERVER[' PHP_SELF ']} ? sortby = usort ' > usort < / > < / td >”;
回声“< td > < a href = ' { $ _SERVER[' PHP_SELF ']} ? sortby =名字' > < / > < / td >”;
回声&quot; < / tr > &quot;;/ /显示一行数据而($ r=作用是(美元的结果)){
回声“< tr >”;/ /链接改变定制订单,传递方向和自定义id排序
回声“< td对齐=“中心”> < a href = ' { $ _SERVER[' PHP_SELF ']} ? dir = up&id = { $ r(的作用)} > / \ < / >”;
回声“< a href = { $ _SERVER[' PHP_SELF ']} ? dir = down&id = { $ r(的作用)}’> \ / < / > < / td >”;
回声“< td > { $ r(“名字”)} < / td > &quot;;
回声&quot; < / tr > &quot;;}/ / $ r时结束
回声&quot; < /表> &quot;;/ /显示表? >连接到数据库
< ?php
/ /连接数据库
康涅狄格州美元=首先(“localhost”,“dbusername”,“dbpassword”)或死(mysql_error());
$ db=mysql_select_db(“dbname”,康涅狄格州美元)或死(mysql_error());  首先要做的是连接到数据库。 这里没有什么特别的。 在适当的地方插入你自己的信息。
如果一个箭头点击…
/ /如果一个箭头链接被点击了……如果($ _GET[“dir”]& &$ _GET[“id”]){/ /得到增值供应商更容易处理
dir美元=$ _GET[“dir”];/ /扮演int和sql注入预防开关两美元的id
$ id=(int)$ _GET[“id”];  好,接下来,我们要检查是否一个箭头点击。 我们通过检查两个变量。 一个变量(“dir”)会告诉我们哪个方向交换(向上或向下)、数量和其他变量(id)会告诉我们数量是多少。 我们将它们分配给“常规”变量更容易编码。
  $ id是int类型。我们这样做的原因是为了防止人们进入一半数字或数字以外的东西。 这样做是为了防止可能的sql注入×××这个变量(你总是安全意识)。
向上或向下
开关(dir美元){/ /如果我们上升,交换1小于id情况下“了”:/ /确保上面一行来交换
美元掉期=($ id>1)?$ id- - -:1;打破;  美元dir告诉我们我们想要交换:向上或向下。 例如,如果我们有一个列表,1,2,3,交换将改变列表2,1,3。 交换将改变列表1,3,2。
列表交换交换了
1 2 1
2 1 3
3 3 2  我们将使用一个开关来决定做什么如果$ dir向上或向下。 如果$ dir = = '了'然后我们将使用三元运算符确保当前行大于1,所以有高于行交换。 如果有,那么我们将分配前一行交换美元减去1。 如果没有行高于当前行(它已经在列表的顶部),我们分配1。
  我们怎么知道行上面1小于当前号码吗? 的作用,因为所有的值应该是唯一的。 5行= = 5数字,1 - 5。 总是会有1、2、3、4、5。 订购的作用永远是1 - 5(或者无论有多少你有)。 你必须计划,或者它不会工作。
  好吧,我收回那句话。 它不会工作,这段代码的例子。 你可以的,做一个查询发现上面或下面会是什么,不管它是1,但我们不会把所有复杂。
沿着…… 列表
/ /如果我们掉下来,掉期是1比id情况下“下来”:/ /找出行是最高的
美元的sql=“SELECT count(*)从信息”;
美元的结果=mysql_query(美元的sql,康涅狄格州美元)或死(mysql_error());
$ r=mysql_fetch_row(美元的结果);
美元最大=$ r[0];/ /确保下面一行来交换
美元掉期=($ id ”;/ /列名称链接,sortby
回声“< td > < a href = ' { $ _SERVER[' PHP_SELF ']} ? sortby = usort ' > usort < / > < / td >”;
回声“< td > < a href = ' { $ _SERVER[' PHP_SELF ']} ? sortby =名字' > < / > < / td >”;
回声&quot; < / tr > &quot;;  接下来,我们将开始一个html表,第一行的列名。 我们让他们链接,通过url传递列名,所以脚本知道列顺序的结果,你应该点击。
/ /显示一行数据而($ r=作用是(美元的结果)){
回声“< tr >”;/ /链接改变定制订单,传递方向和自定义id排序
回声“< td对齐=“中心”> < a href = ' { $ _SERVER[' PHP_SELF ']} ? dir = up&id = { $ r(的作用)} > / \ < / >”;
回声“< a href = { $ _SERVER[' PHP_SELF ']} ? dir = down&id = { $ r(的作用)}’> \ / < / > < / td >”;
回声“< td > { $ r(“名字”)} < / td > &quot;;
回声&quot; < / tr > &quot;;}/ / $ r时结束
回声&quot; < /表> &quot;;/ /显示表? >  最后,我们使用while循环遍历和显示结果从数据查询。 我们做一些箭头和向下箭头链接,通过交换哪个方向,以及数量的作用这一行,所以脚本知道行交换,应该单击其中一个链接。 名字是显示为纯文本,因为我们什么都没做。 关闭循环后的表,做完了。
结束




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-650011-1-1.html 上篇帖子: 在PHP中使用复选框和一个数据库 下篇帖子: PHP微职位学习心得分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表