Я чувствую, что это более логичная проблема, чем что-либо. База данных имеет изображения, сохраненные с помощью ссылки на источник, и логические значения для тегов, например. isLandscape = 1. Я создал систему для обработки страниц результатов по запрошенным типам. Ниже приведен пример того, с чем я столкнулся. Я вижу только те 12 изображений со страницы 0 -> стр. 22. Затем я начинаю видеть новые. Я думаю, что я просто забыл эту ошибку, так как до сих пор я ее не замечал. Одна вещь, которую я заметил, это page22 * 12pictures = 264, которая совпадает с первым новым идентификатором изображения, который виден. Вы можете увидеть ошибку here (просто измените p на разные страницы).Ошибка отображения отмеченных изображений на нескольких страницах
<?php
$pictureid = -1;
$startpage = 0;
$viewsection = -1;
$uid = -1; //user id
$amntperrow = 4; //how many pictures per row, must correlate with doThumb()'s switch case amounts
$maxrows = 3; //how many rows of pictures to drop
if(isset($_GET['pid']) && is_int(intval($_GET['pid']))) $pictureid = clean($_GET['pid']);
if(isset($_GET['sec']) && is_int(intval($_GET['sec']))) $viewsection = clean($_GET['sec']);
if(isset($_GET['p']) && is_int(intval($_GET['p']))) $startpage = clean($_GET['p']);
$result = generateResult(array("isFlowers"), $startpage);
//**snip** -- drawing thumbnails would happen here
function generateResult($types, $page) {
global $amntperrow;
global $maxrows;
$sqlWheres = "";
$idAmnt = ($amntperrow*$maxrows)*$page;
if(isset($types) && !empty($types)) {
if(count($types) >= 1) {
for($i = 0; $i<count($types); $i++) {
$sqlWheres .= $types[$i] . "='1'";
if($i < count($types)-1) $sqlWheres .= " AND ";
}
}
}
$result = "SELECT * FROM pictures WHERE ";
if(!empty($sqlWheres)) $result .= $sqlWheres . " AND " ;
$result .= " private='0' AND id >='" . $idAmnt . "' LIMIT " . ($amntperrow*$maxrows);
return $result;
}
?>
Это похоже на вопиющую ошибку, которую я пропускаю. Спасибо за помощь.