我有这个php从我的数据库获取行,但是当我将结果循环到我的网站上的div时,它总是错过了它检索到的第一行,我不知道为什么。
$db = mysqli_connect('localhost', 'root', '', 'cdb')
or die('Error connecting');
if( isset($_REQUEST['page'])) {
$_SESSION['page'] = $_REQUEST['page'];
}else{
$_SESSION['page'] = 1;
}
$records_per_page = 8;
$where = substr($where, 0, -3);
$query = "SELECT * FROM cars
".$where."";
$result = mysqli_query($db, $query)
or die("Error in query: '$query'");
$row = mysqli_fetch_assoc($result);
$i = 0;
$start = ($_SESSION['page'] - 1) * $records_per_page;
$end = ($_SESSION['page']) * $records_per_page;
while($row = mysqli_fetch_assoc($result) and $i < $end)
{
$i++;
if( $i > $start )
{
echo'
<div class="result_main flip'.$i.' shadow2">
<div class="main_result_carname">
<h2><b>'.$row['make'].' '.$row['model'].'</b></h2>
</div>
<div class="main_result_carprice">
<h2><b>£'.$row['price'].'</b></h2>
</div>
</div>';
}
}
?>
看着它,我觉得它应该可以正常工作,但总是从第2行开始,我能看到的唯一可能影响它的变量是$ i。没有理由从1开始应该是错误的,但无论如何,将其设为-1导致没有显示记录,并使其为0使其保持不变,同时使其为-1使其从第3行开始,并使其成为2它从第2行开始。
答案 0 :(得分:3)
删除
$row = mysqli_fetch_assoc($result);
在你的
之前$i = 0;
$result = mysqli_query($db, $query)
or die("Error in query: '$query'");
$row = mysqli_fetch_assoc($result);
$i = 0;
这是选择你的第一行并向前移动内部指针
while($row = mysqli_fetch_assoc($result) and $i < $end)
将从第2行开始选择