У меня есть предложение where, которое показывает все категории, где id = входное значение со страницы previouse. работа с разбивкой на страницы дает мне правильное количество страниц, а предложение where дает мне правильные записи.
когда я нажимаю на страницу nuber, однако записи, показанные на странице, не являются следующим набором требуемых записей, но все записи
ссылка на каждую страницу не идентифицирует whereclause
<?php include ('dbconnect.php'); $db = dbConnect(); // function defined in dbconnect.php echo $filmCategory = isset($_REQUEST['filmCategory']) ? $_REQUEST['filmCategory'] : null; $whereclause = "where c.category_id = '$filmCategory'"; require_once('functions.php'); //user input this will limit the amount of records per page the user can see $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $perPage = isset($_GET['per-page']) && $_GET['per-page'] <=15 ? (int)$_GET['per_page'] : 10; //positioning: replace certain variables within the query //this will be where the rows start from the calculation will work out if page is greater than 1 //if the page is less than one it should be 0 $start = ($page > 1) ? ($page * $perPage) - $perPage : 0; //query to fetch required records $filmSQL = $db->prepare("SELECT SQL_CALC_FOUND_ROWS f.title, f.description, f.release_year, c.name, f.rating, f.last_update from nfc_film f inner join nfc_film_category fc on f.film_id = fc.film_id inner join nfc_category c on fc.category_id = c.category_id $whereclause LIMIT {$start}, {$perPage}"); // execute the query and get the title, description, release year, name, rating and last update of film $filmSQL->execute(); //echo the table with the titles and correct data from SQL echo "<table border=\"1\">\n"; echo "<tr><th>Title</th><th>Description</th><th>Release Year</th><th>Category</th><th>Rating</th><th>Last Update</th></tr>"; while ($filmInfo = $filmSQL->fetchObject()) { $upperLower= upperFirst(lowercase($filmInfo->title)); $uLDescription= firstUpper(lowercase($filmInfo->description)); $noChar = substr($uLDescription,0,100).'...'; echo "<form action='filmInfo.php' method='get'>"; echo "<tr> <td><input type='text' name='filmInfo' value='{$upperLower}'</td> <td><p>$noChar.</p></td> <td>{$filmInfo->release_year}</td> <td>{$filmInfo->name}</td> <td>{$filmInfo->rating}</td> <td>{$filmInfo->last_update}</td> <td><input type='submit' value='Film Details' </td> </tr>"; echo" </form>"; } echo "</table>"; //pages $total = $db->query("SELECT FOUND_ROWS() as total")->fetch()['total']; $pages = ceil($total / $perPage); ?> <div id="pagintation"> <?php for($x = 1; $x <= $pages; $x++): ?> <a href="?page=<?php echo $x; ?>"><?php echo $x; ?></a> <?php endfor;?>
Добавить категорию в ссылки:
$cat = isset($_REQUEST['category']) ? "&category=" . $_REQUEST['category'] : ''; ?> <div id="pagintation"> <?php for($x = 1; $x <= $pages; $x++): ?> <a href="?page=<?php echo $x . $cat; ?>"><?php echo $x; ?></a> <?php endfor;?>