繁体   English   中英

如何根据表字段中的数据对特定行进行分页?

[英]how to count specific rows based on data in table fields for pagination?

我有一个来自不同国家/地区的用户的数据库。 我的分页有效,因为查询计数所有行。 因此,它给了您大约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';

     ?>

您可以对第一个查询用户的查询应用相同的where子句:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM