2015-05-13 105 views
1

我有一个mysqli数据库,其中包含一个用于标记的表和一个表。使用mysqli和php获取下一个可用日期

在网页中,我显示,从今年人的记录列表:

SELECT * FROM markers m, people p WHERE m.MarkerID = p.MarkerID and p.Publish=1 and year(m.date) like '2015' 

当您单击列表中的人,你会得到一个显示,使用此人的数据新的网页在php中查询:

$name = $_POST['name']; 
$newname = str_replace("_", " ", $name); 
$q = "SELECT * FROM people p, markers m where p.MarkerID = m.MarkerID and p.Name = '" . $newname . "'"; 

在页面底部有箭头可以点击下一条记录和最后一条记录。

我该如何检索下一个或最后一个记录?下一个记录将是第一个查询的下一个记录;先前的记录将是从第一个查询日期开始的先前记录。

+0

考虑使用分页。 –

+0

@Fred -ii-但在个人页面上,我没有第一个查询。我只有查询可以提取个人的数据。 – LauraNMS

+0

@Marc乙:我会addslashes。但我现在专注于这个其他问题。 – LauraNMS

回答

1

这是目前未经测试。

让我知道你的想法,问任何问题。

$recs = 20; // number of records per page 

$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM markers m, people p WHERE m.MarkerID = p.MarkerID and p.Publish=1 and year(m.date) like '2015'"; 

$next = intval($_POST['next']); 
$last = intval($_POST['last']); 
if($last > 0){ 
    $limit1 = $last - $recs; 
    $limit2 = $last + 1; 
} 
else{ 
    $limit1 = $next; 
    $limit2 = $limit1 + $recs; 
} 

$query = "$sql LIMIT $limit1 $limit2"; 
$results = mysqli_query($link,$sql); 

    // do your existing page 

$rows = mysql_num_rows($results); 
if($rows == $recs) 
    $result = mysqli_query($link,"SELECT FOUND_ROWS()"); 
    $more = mysqli_fetch_array($result , MYSQL_NUM); 
} 
$remaining = intval($more[0]); 
$total = $remaining + $limit2; 
$remaining -= ($limit1 + $recs); 
$next += $recs + 1; 
if($remaining > 0) 
    echo <<<EOF 

<form action="#' method="post"> 
<input type="hidden" name="next" value="$next"/> 
<button type="submit">Next</button> 
</form> 
<form action="#' method="post"> 
<input type="hidden" name="last" value="$total"/> 
<button type="submit">Last</button> 
</form> 

EOF; 
} 
1

我认为这会做的前科:

$q = "select * from people v, markers m 
where v.Publish = 1 
and m.MarkerID = v.MarkerID 
and m.date = (select max(m.date) 
from markers m, victims v where m.MarkerID = v.MarkerID 
and v.Publish = 1 
and m.date < '" . $this_date . "')" 
+0

你一次只显示一条记录吗?或者只是滚动一条记录而不是一页记录? – Misunderstood

+0

一条记录,而不是一个页面 – LauraNMS