2014-12-13 152 views
-1

我有一個腳本來顯示最受關注的電影。這些信息來自MySQL數據庫。PHP MySQL ORDER BY DESC LIMIT 1

此代碼的工作:

<?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

我怎麼能解決這個問題?

在此先感謝

+0

你可以顯示mysql的創建代碼嗎? 'SHOW CREATE TABLE電影「; – HarryFink 2014-12-13 13:07:01

+1

bekeken列是數字還是字符串? – Abovestand 2014-12-13 13:07:04

+0

您需要將bekeken轉換爲數字,如答案所述。 – user3806613 2014-12-13 13:08:12

回答

2

這聽起來像問題是,bekeken不存儲爲一個數字,而是作爲一個字符串。你可以將它轉換爲數字進行排序:

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

更好地改變表,所以mysql可以使用索引進行排序。 – HarryFink 2014-12-13 13:08:55