2016-04-29 29 views
-1

私は異なる国のユーザーを持つデータベースを持っています。クエリですべての行がカウントされるため、私のページネーションが機能しています。それで、5ページのようにあなたに与えて、総レコードがpage3で終わったとしましょう。ページングのテーブルフィールドのデータに基づいて特定の行を数える方法は?

私の質問は:

1)どのように私はのは、「オーストラリア」と言わせて一つの国からのレコードだけを数えることができますか?そして、ページネーションは、私には結果のないページがありません。

ページネーションのための私のコードは以下の通りです:

 <?php 

     $per_page = 1; 
     $pages_query = mysql_query("SELECT COUNT(*) FROM `users`"); 
     $pages = ceil(mysql_result($pages_query,0)/$per_page); 

     if (!isset($_GET['page'])) 

     { 
      header("location: blood.php?page=1"); 

     } 
     else 

      { 
      $page = $_GET['page']; 

      } 

      $start = (($page - 1)*$per_page); 

      $colours = mysql_query("SELECT * FROM users WHERE country ='australia' LIMIT $start,$per_page"); 

      while($row = mysql_fetch_assoc($colours)) 
      { 
      $username = $row['first_name']; 

      echo "$username<br>"; 

      } 

      for($number=1; $number<=$pages; $number++) 
      { 
      echo '<a href= "?page='.$number.'">'.$number.'&nbsp;</a>'; 
      echo"&nbsp;"; 
      } 

     echo "<br>Current Page: $page"; 
     ?> 

どのように私は、結果がユーザ名と姓のためにユーザーが検索後に返され、以下のコードで修正案と一緒に、上記のコードが含まれます。

 <?php 

     include 'core/init.php'; 
     include 'includes/overall/oheader.php'; 
     ?> 

     <?php 
     if(isset($_POST['submit'])) 
     { 
     $query = $_POST['uname_search']; 
     $queryl = $_POST ['lname_search']; 

     $min_length = 3; 
     if(strlen($query) >= $min_length && strlen($queryl) >= $min_length) 
     { 
     $query = htmlspecialchars($query); 
     $query = mysql_real_escape_string($query); 
     $queryl = htmlspecialchars($queryl); 
     $queryl = mysql_real_escape_string($queryl); 
     echo "<table border='1' width='250px' align='center' cellpadding='1' cellspacing='1'>"; 
    echo "<tr align='center' bgcolor='#002C40' style='color:#FFF'> 
    <td height='30px' width='150px'>Username</td> <td>first_name</td> <td>last_name</td><td>email</td><td>Mobile_Number</td><td>gender</td><td>county</td><td>blood_group</td> 


    $raw_results = 

    mysql_query("SELECT * FROM `users` WHERE (`username` LIKE '%".$query."%') AND (`last_name` LIKE '%".$queryl."%')"); 
    if(mysql_num_rows($raw_results) > 0) 
    { 
    while($results = mysql_fetch_array($raw_results)) 
    { 

    $image = "images/profile/1a4671c319.jpg" ; 

    echo "<tr align='center' bgcolor='#002C40' style='color:#FFF'> 


    <td rowspan='4'>"."<img src=".$results['profile']." width=100px height=100px> "."</td> 
    <td >Username</td> 
    <td >first_name</td> 
    <td>last_name</td> 
    <td>email</td> 


    </tr>"; 

    echo "<tr align='center' bgcolor='#0f7ea3'> 
     <td>".$results['username']."</td> 
    <td>".$results['first_name']."</td> 
    <td>".$results['last_name']."</td> 
    <td>".$results['email']."</td> 

    </tr>" ; 

    echo "<tr align='center' bgcolor='#002C40' style='color:#FFF'> 




    <td>Mobile_Number</td> 
    <td>gender</td> 
    <td>county</td> 
    <td>blood_group</td> 

    </tr>"; 

     echo "<tr align='center' bgcolor='#0f7ea3'> 

     <td>".$results['Mobile_Number']."</td> 
     <td>".$results['gender']."</td> 
     <td>".$results['county']."</td> 
     <td>".$results['blood_group']."</td> 

    </tr>" ; 
    } 

    } 
    else{ 
    echo "<tr align='center' bgcolor='#6C0000'> 

     <td colspan='8' height='25px'>No results</td><tr>"; 
    echo "</table>"; 
    } 
    } 
    else{ 
     echo "Minimum length is ".$min_length; 
    } 

     } 

     include 'includes/overall/ofooter.php'; 

    ?> 
+0

?あなたが 'オーストラリア/全100人のユーザー14人 'に同様のメッセージを表示したいのであれば、私はそのような質問を想像することしかできません。 – agustin

+0

ユーザーに検索させる場合、どうすればいいですか?私は次のように試してみましたが、その結果、3の代わりに1つの結果しか得られず、他のページへのリンクもありませんでした。 mysql_query( "SELECT COUNT(*)from country ="。$ country。 ""); '' – hardeep

答えて

2

あなたはユーザーを数える最初のクエリに同じwhere条項を適用することができます:あなたはすべての "ユーザー" `FROM` SELECT COUNT(*)を必要とするのはなぜ

$pages_query = 
    mysql_query("SELECT COUNT(*) FROM `users` WHERE country ='australia'"); 
    # Here -----------------------------------^ 
+0

それは働いてくれてありがとう..私はそれを逃した方法を知らない。 – hardeep

+0

私はユーザーの検索ページから国を取得し、PHP変数$ countryに格納している場合はどうなりますか?どのように私はそれをクエリに含めるだろう。私は次のことを試みたが、私に結果を与えていない。結果が1件表示され、他のページへのリンクが表示されます。それをしないiits。 ** mysql_query( "SELECT COUNT(*)FROM'ユーザ 'WHERE country ="。$ country ""); ** – hardeep

関連する問題