我有文章,每一篇都有自己的观点。在侧边栏中,我展示了访问次数最多的文章。一切都在工作,但有秩序就有问题。例如,我有4篇文章。1文章有10种观点,2-7种观点,3-6种观点,4-3种观点.而秩序是
1) 1 article - 10
2) 2 article - 7
3) 3 article - 6
4) 4 article - 3所以我们可以看到一切都很好。但是,当我再添加一个工件,它有一个视图,顺序改变和第5工件到顶部,但为什么。它有较低的观点比另一篇文章?当第5篇文章获得10次浏览时,一切正常,秩序得到恢复。但是,当订单重新出现时,当最后一件作品有超过10次观看的时候,为什么还要这样做呢?
<?php
$dbname="php";
$dbhost="localhost";
$dbusername="root";
$dbuserpassword="";
$optins= array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set NAMES utf8');
try{
$db= new PDO("mysql:host={$dbhost};dbname={$dbname};chartset=utf8",
$dbusername,$dbuserpassword,$optins);
} catch (PDOException $ex) {
die("Fail to connect".$ex->getMessage());
}
// all post
$sql = "select * from tbl_blog order by page_view desc limit 5";
$data=$db->prepare($sql);
$data->execute();
$allpost=$data->fetchAll();
// Single Post
创建表:
CREATE TABLE tbl_blog (
id int(11) NOT NULL,
blog_title text NOT NULL,
description text NOT NULL,
content text NOT NULL,
page_view varchar(10) NOT NULL,
category text NOT NULL,
img varchar(225) NOT NULL,
sub_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = InnoDB DEFAULT CHARSET = utf8发布于 2018-12-05 16:44:35
对我来说,字母顺序似乎控制了page_view属性。
如果您的page_view属性被定义为varchar,它将像字符一样被排序,例如:
"3“"2”"12“"11”10“1”。
检查page_view属性是否为整数,以使其具有1 2 3 10 11 12
希望能帮上忙
发布于 2018-12-05 16:45:29
问题是page_view的数据类型是VARCHAR(10),所以它被排序为字符串,而不是数字。
将数据类型更改为数字类型(例如,INTEGER),它将正确排序。
https://stackoverflow.com/questions/53636749
复制相似问题