PHP MySQL ORDER BY DESC LIMIT 1

时间:2014-12-13 13:04:09

标签: php mysql

我有一个脚本来显示观看次数最多的电影。此信息来自MySQL数据库。

此代码有效:

<?php

$sql = "SELECT title, time, filename, imageurl, ms, bekeken, genres FROM movies ORDER BY bekeken 
DESC LIMIT 1";

$result = mysqli_query($mysqli, $sql);

if (mysqli_num_rows($result) > 0)
{
//
while($row = mysqli_fetch_assoc($result))
{
            echo '<div class="right-content">
        <div class="popular">
            <h3>Populairste film</h3>
            <p>Meest bekeken film!</p>
            <div class="clear"> </div>
        </div>
        <div class="grid1">
                    <h3>' . $row["title"] . '</h3>
                    <a href="player.php?file=' . $row["filename"] . '&ms=' . $row["ms"] . '"><img src="' . $row["imageurl"] . '" title="' . $row["title"] . '"  height="260" width="200"/></a>
                    <div class="time1">
                        <span>' . $row["time"] . '</span>
                    </div>

                    <div class="grid-info">

                        <div class="video-watch">
                            <a href="#">Kijk nu!</a>
                        </div>
                        <div class="clear"> </div>
                        <div class="lables">
                            <p>Genre:<a href="genres.php?g=">' . $row["genre"] . '</a></p>
                        </div>
                    </div>
                </div>
                <div class="clear"> </div>';
}
}
?>

问题:

当变量“bekeken”大于10时,它会自动选择少于10的那个。观看次数最多。

它没有正确选择“bekeken”是最高数字的那个。

如果数据库中“数字”行中的所有数字都小于10,则它可以正常工作。

我该如何解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:2)

听起来问题是bekeken不是作为数字存储,而是作为字符串存储。您可以将其转换为数字以进行排序:

SELECT title, time, filename, imageurl, ms, bekeken, genres
FROM movies
ORDER BY (bekeken + 0) DESC
LIMIT 1