php - 使用 between、min 和 max 的问题

标签 php mysql mysqli

我创建了一个目录,其中包含用于字符和我分配给他们的年份的年份 block 搜索功能。因此,1940 年至 1949 年的任何内容都属于 1940 年的时间段,依此类推。我正在使用 href 对这些时间范围进行分组。

<?php

$sql = "SELECT * FROM catalog";

$displayby = $_GET['displayby'];
$displayvalue = $_GET['displayvalue'];

if($displayby && $displayvalue){
    $sql = "SELECT * FROM catalog WHERE $displayby LIKE '$displayvalue'";
}
if($displayby == 'year'){
    $min = $_GET['min'];
    $max = $_GET['max'];
    $sql = "SELECT * FROM catalog WHERE year BETWEEN '$min' AND '$max'";
 }
//$result = mysqli_query($con,$sql);
$result = mysqli_query($con,"SELECT * FROM catalog WHERE year BETWEEN '$min' AND '$max'");
    while($row = mysqli_fetch_array($result)){
        $name = $row['name'];
        $filename = $row['filename'];
        $cid = $row['cid'];

        echo "\n<div class=\"holder\">";
        echo "<a href=\"single.php?cid=$cid\"><img src=\"thumbs/$filename\"></a>";
        echo "<a href=\"single.php?cid=$cid\">$name</a><br />\n";
        echo "</div>";
    }
?> 

使用此 href 仅显示那些年内的某些字符:

<a href="index.php?displayby=year&min=1940&max=1949">40's Villans</a><br/>

但是它们出现在前几年 - 可能是 1945 年作为角色的设定日期,但它们只出现在 1930 年的链接中。

我做错了什么? 编辑:这是表格 SQL table

最佳答案

BETWEEN ... AND .... 可用于整数和字符串。所以:

BETWEEN 1 AND 3

对于 1、2 和 3 都是正确的。但是:

BETWEEN 'a' AND 'c'

对于“a”、“b”和“c”都是正确的。

http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between

您在数字周围加上了引号,将它们变成了字符串。所以比较是在字符上进行的,而不是数字。

删除引号应该可以正常工作。

$result = mysqli_query($con,"SELECT * FROM catalog WHERE year BETWEEN $min AND $max");

但是正如其他人所说,代码还有很多其他问题。这个错误是一个人并不真正知道他们在做什么的症状。为什么不从头开始,拿一本好书。阅读。做例子。实验。成为一名流利的程序员可能需要数年时间。 (这是一种鼓励,而不是批评。)

关于php - 使用 between、min 和 max 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27353814/

相关文章:

php - Laravel Cache 不在生产服务器上存储缓存文件

php - PDF 文件字体不像源 html

php - 如果 php 每分钟更新 mysql 则排队

jquery - FullCalendar使用jquery从url获取事件

mysql - 如何使用 ORDER BY/GROUP BY 忽略某些表达式?

javascript - 如何在ajax中获取数组值

php - 合并两个查询 MYSQLi

php - NicEdit 与代码

php - MySQL错误: 'invalid use of a group function'

php - 如何从 PHP 函数返回 MYSQLi 连接对象的实例?