2016-05-03 9 views
0

Wenn ich eine Kategorie auswähle und die Submit-Taste drücke, zeigt meine Seitennummerierung die korrekte Anzahl an Seiten an, die für die Anzahl der Datensätze benötigt werden, die mein SQL-Statement abgerufen hat. Wenn ich zum Beispiel auf Seite 2 klicke, wird die Seite aktualisiert und die Daten werden nicht mehr angezeigt, anstatt die nächste Seite anzuzeigen. Es wird nur noch die Kategorie Dropdown-Box und die Suchschaltfläche angezeigt.

if(isset($_POST['search'])) { 

    $filmCategory = isset($_REQUEST['filmCategory']) ? $_REQUEST['filmCategory'] : null; 

    if (empty($filmCategory)) { 
    $whereclause = ''; 
    }else { 
    $whereclause = "where c.category_id = '$filmCategory'"; 
    } 

    require_once('functions.php'); 

//user input 
    $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; 
    $perPage = isset($_GET['per-page']) && $_GET['per-page'] <=15 ? (int)$_GET['per_page'] : 10; 

//positioning 
$start = ($page > 1) ? ($page * $perPage) - $perPage : 0; 

//query 
    $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>";; 

so über alles funktioniert gut, aber wenn ich dann Seite 2 zum Beispiel wird die Seite aktualisiert wählen und alle Daten verschwinden

$total = $db->query("SELECT FOUND_ROWS() AS total")->fetch()['total']; 
//use CEIL to round up the pages so here are no pages with decimals 
    $pages = ceil($total/$perPage); 

    for($x = 1; $x <= $pages; $x++):; 
    echo"<div id='pagination'> 

       <a href='?page=$x'>$x</a> 

      </div>"; 
    endfor; 
} 
?> 

mag ich es auf die nächste Seite von Datensatz zeigen, aber ich kann es nicht bekommen zu arbeiten :(

Antwort

0

sein sollte,

//positioning 
$start = isset($_GET['page']) && (int)$_GET['page'] > 1 ? ($_GET['page'] - 1) * $perPage : 0; 
+0

, die entweder die Paginierung seiner selbst ist nicht das Problem gearbeitet has not i t bringt die richtige Menge von Aufzeichnungen, die ich gefragt habe, und zeigt die Seitenzahlen, aber wenn ich auf die Links if (isset ($ _ POST ['Suche'])) {zurückgesetzt und kein recorsd zeigt danke trotzdem – BArthurs122