我有一个来自不同国家/地区的用户的数据库。我的分页工作正常,因为查询计算所有行。所以它给你5页,让我们说总记录由第3页完成。
我的问题是:
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.' </a>';
echo" ";
}
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 :(得分:2)
您可以将相同的where
子句应用于计算用户的第一个查询:
$pages_query =
mysql_query("SELECT COUNT(*) FROM `users` WHERE country ='australia'");
# Here -----------------------------------^