gpt4 book ai didi

php - 使用 php 向上或向下移动 mysql 数据库行

转载 作者:行者123 更新时间:2023-11-29 03:50:46 25 4
gpt4 key购买 nike

我有一个 mysql 数据库和一些 php,它允许您在数据库中创建条目、更新条目以及将条目作为网页或 xml 查看。我想要做的是添加一个函数,将数据库中的条目向上或向下移动一行,或者发送到数据库的顶部或底部。

我看到一些关于做这种事情的在线评论建议在显示页面时进行动态排序,但我正在寻找一个持久的手段。我见过一种建议的方法是在数据库中有一个独立的“排序”字段,它与实际的数据库排序键无关,但我不确定为什么这会比实际重新排序数据库更好

这是表结构的转储:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `hlnManager`
--

-- --------------------------------------------------------

--
-- Table structure for table `hln_stations`
--

CREATE TABLE IF NOT EXISTS `hln_stations` (
`id` int(6) NOT NULL auto_increment,
`station_title` varchar(60) NOT NULL default '',
`station_display_name` varchar(60) NOT NULL default '',
`station_subtitle` varchar(60) NOT NULL default '',
`station_detailed_description` text NOT NULL,
`stream_url_or_playlist_url` text NOT NULL,
`link_type` varchar(25) NOT NULL default '',
`small_thumbnail_graphic_url` text NOT NULL,
`large_thumbnail_graphic_url` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;

最佳答案

不确定“重新排序”数据库是什么意思...SQL 数据库通常不保证在没有 ORDER BY 子句的情况下返回记录的顺序(如果有的话)。

  1. 您需要一个“SortOrder”类型的列。我建议您将其设为具有唯一键的 int。
  2. 您需要一种通过 UI 更新此“SortOrder”列的方法

易于编程,易于使用:使用 jQuery 或任何适合您的 javascript 库在 HTML 中实现简单的拖放界面。在 on-complete 方法(或响应保存按钮)中,触发一个 ajax 调用,该调用将简单地发送一个 id 数组。顺序正确。在数据库端,遍历它并相应地更新 SortOrder,从 1 开始,然后是 2,等等...

难以编程,难以使用:实现经典的上移和下移按钮。单击后,发送 idaction (例如,向上、向下)到服务器。有几种策略可以处理此更新,但我将概述其中的几种:

假设用户点击了“上移”,您可以将 ID 与之前的记录交换。

查找之前的记录:SELECT id FROM hln_stations WHERE SortOrder < (SELECT SortOrder FROM hln_stations WHERE id = ...) ORDER BY SortOrder DESC LIMIT 1

运行两个更新语句,交换 SortOrder。反向向下移动。添加特殊代码来检测顶部或底部。

等...

还有其他方法,但对于 Web 界面,我建议您使用拖放,因为用户会喜欢它。

关于php - 使用 php 向上或向下移动 mysql 数据库行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com