2016-10-04 4 views
-1

私は現在、データベースから関連するデータを返すために、これを使用します。PHPとMysql変数値に基づいてデータベースを検索することは可能ですか?

$currentname = mysql_query("SELECT * FROM `posts` WHERE `title` LIKE '%{$terms}%' OR `descrip` LIKE '%{$terms}%' LIMIT $start, 5"); 

それは素晴らしい作品と彼らはデータベース内のテーブルに置かれたとき、私は順番に必要なデータを返します。特定の値に基づいて最高から最低の順に返されるようにすることは可能ですか?ビューと呼ばれる値があるとします。すべての関連するテーブルエントリが返されるまで、最も高いビューが最初に返され、次に2番目、3番目、4番目などが返されます。私はここにそれは私の完全なコードである必要がある理由のコンテキストを探している場合:

$pagesQuery = mysql_query("SELECT count(id) FROM(`posts`) WHERE `title` LIKE '%{$terms}%' OR `descrip` LIKE '%{$terms}%'"); 
       $pageNum = ceil(mysql_result($pagesQuery, 0)/5); 
       $start = (($page-1)*5); 


       $currentname = mysql_query("SELECT * FROM `posts` WHERE `title` LIKE '%{$terms}%' OR `descrip` LIKE '%{$terms}%' LIMIT $start, 5"); 
       while ($row = mysql_fetch_array($currentname)) { 
         //recieve relevant data. 
         $title = $row[0]; 
         $desc = $row[13]; 
         $ID = $row[6]; 
         $views = $row[3]; 
         $user = $row[7]; 
         //fetch the last id from accounts table. 
         $fetchlast1 = mysql_query("SELECT * FROM allaccounts WHERE id=(SELECT MAX(id) FROM allaccounts)"); 
         $lastrow1 = mysql_fetch_row($fetchlast1); 
         $lastid1 = $lastrow1[6]; 
         //acquire the username of postee. 
         for ($i1=1; $i1 <= $lastid1; $i1++) { 
          $currentname1 = mysql_query("SELECT * FROM allaccounts WHERE id=$user"); 
          while ($row1 = mysql_fetch_array($currentname1)) { 
           $username1 = $row1[0]; 
          } 
         } 

         //Format Title, description and view count. 
         $title2 = rtrim($title); 
         $donetitle = str_replace(" ", "-", $title2); 
         $url = "articles/".$ID."/".$donetitle.""; 

         $donetitle = strlen($title) > 40 ? substr($title,0,40)."..." : $title; 
         $donedesc = ''; 

         if(strlen($desc) > 150) { 
          $donedesc = explode("\n", wordwrap($desc, 150)); 
          $donedesc1 = $donedesc[0] . '...';       
         }else{ 
          $donedesc1 = $desc;       
         } 
         $finviews = number_format($views, 0, '.', ','); 

         //Give relevant results 

           if($row[10] == null){ 
            $SRC = "img/tempsmall.jpg"; 
           }else{ 
            $SRC ="generateThumbnailSmall.php?id=$ID"; 
           } 
           echo "<div id = \"feature\"> 

             <img src=\"$SRC\" alt = \"article thumbnail\" /> 
             </div> 
             <div id = \"feature2\"> 
              <a href= \"$url\" id = \"titletext\" alt = \"article title\">$donetitle</a> 
              <p id=\"resultuser\" >$username1</p> 
              <p id=\"resultp\">$donedesc1</p> 
              <a href = \"sendflag.php?title=$title&url=$url&id=$ID&userid=$user\" id = \"flag\" alt = \"flag\"><img src=\"img/icons/flag.png\"/></a><b id=\"resultview\">$finviews views</b> 

             </div> 
             <div id = \"border\"></div>"; 







       } 



        $totalPages = $pageNum; 
        $currentPage = $page; 
        $numPagesToShow = 10; 

        if($currentPage > $totalPages) { 
         $currentPage = $totalPages; 
        } 


        if($numPagesToShow >= $totalPages) { 
         $numMaxPageLeft = 1; 
         $numMaxPageRight = $totalPages; 
        } else { 
         $pagesToShow = ceil($numPagesToShow/2); 
         $numMaxPageLeft = $currentPage - $pagesToShow; 
         $numMaxPageRight = $currentPage + $pagesToShow; 

         if($numMaxPageLeft <= 0) { 
          $numMaxPageRight = $numMaxPageRight - $numMaxPageLeft +1; 
          $numMaxPageLeft = 1; 
         } elseif($numMaxPageRight >= $totalPages) { 
          $numMaxPageLeft -= ($numMaxPageRight - $totalPages); 
          $numMaxPageRight = $totalPages; 
         } 
        } 

        for ($i=$numMaxPageLeft; $i<=$numMaxPageRight; $i++) { 
         echo "<a id =\"pagenationlink\" href=\"searchresults.php?search=".$terms."&page=".$i."\">".$i."</a>"; 
        } 
+0

どの値が 'views'の数字の文字列ですか? – Franco

+0

viewsは$ row – jack

+0

から取得された整数です。次に、ORDER BYビューを使用する必要があります。DESC – Franco

答えて

0

ORDER BY views DESCあなたが探しているものだろうか?

関連する問題