2016-08-21 25 views
0

私はPHPを初めて使っています。私はsqliteデータベースに接続して遊んでおり、成功しました。何らかの理由で私のページネーションが機能していません。PHPでのページ分割SQLite

$pageの値は2を超えません。誰かが私を助けてくれるのだろうか、私はおそらくそれはおそらく単純な間違いだと確信しています。 (だから、現在はそれが次への最初のページから変化しない。

A screenshot of the database (as it is currently)

<?php 
    try 
    { 
    //open the database 
    $db = new PDO('sqlite:client.db'); 

    //create the database 
    $db->exec("CREATE TABLE IF NOT EXISTS Client (id INTEGER PRIMARY KEY AUTOINCREMENT, first_name VARCHAR(50), last_name VARCHAR(50), email VARCHAR(50), gender VARCHAR(50))"); 

$page = 1; 
if(!empty($_GET['page'])) { 
    $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT); 
    if(false === $page) { 
     $page = 1; 
    } 
} 

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    //something posted 

    if (isset($_POST['Previous'])) { 
     print 'current value of $page = ' . $page; 
     print "<br>"; 
     if($page <= 0) { 
      $page = 1; 
     }else { 
      $page = $page - 1; 
     } 
    } else if(isset($_POST['Next'])) { 
     print 'current value of $page = ' . $page; 
     print "<br>"; 
     $page = $page + 1; 
    } 
} 





// set the number of items to display per page 
$limit = 10; 

// build query 
$offset = ($page - 1) * $limit; 
if($offset <= 0) { 
    $offset = 0; 
} 
print '$page = ' . $page; 
print "<br>"; 
print '$offset = ' . $offset; 
    //now output the data to a simple html table... 
    print "<table border=1>"; 
    print "<tr><td>Id</td><td>First Name</td><td>Last Name</td><td>Age</td><td>Gender</td></tr>"; 
    $sql = "SELECT * FROM Client LIMIT " . $offset . "," . $limit; 

    $result = $db->query($sql); 
    //$rows = count($result); 
    //print $rows; 
    //checks if table has data 
    //$count = $result->fetchColumn(); 

    foreach($result as $row) 
    { 
     print "<tr><td>".$row['id']."</td>"; 
     print "<td>".$row['first_name']."</td>"; 
     print "<td>".$row['last_name']."</td>"; 
     print "<td>".$row['email']."</td>"; 
     print "<td>".$row['gender']."</td></tr>"; 
    } 


    print "</table>"; 
    print "<br>"; 
    //print "<button type=\"button\" name=\"button\"><< Previous </button>"; 
    //print "<button type=\"button\" name=\"button\">Next >></button>"; 
    print "<form class=\"\" action=\"\" method=\"post\">"; 
    print "<button type=\"submit\" name=\"Previous\">Previous</button>"; 
    print "<br><br><button type=\"submit\" name=\"Next\">Next</button>"; 
    print "</form>"; 

    // close the database connection 
    $db = NULL; 
    } 
    catch(PDOException $e) 
    { 
    print 'Exception : '.$e->getMessage(); 
    } 
?> 
+0

フォームアクションURLのパラメータとして '$ page'変数を送信していますか?これは、フォームが次に送信されるときにそれが見つかると予想される場所である必要があります。 URLクエリパラメータから '$ _GET ['page]'が設定されています。 –

+0

こんにちはRyan、お返事ありがとうございます。私はPHPの初心者です。私はそれをやる方法を知らないでしょう。私は文字通り始まったばかりですが、他のプログラミング言語での経験をお持ちの方は、アドバイスや助けをいただければ幸いです。 – InfiniteLoop

+0

'

答えて

1

すべてのクレジットは私がこの問題を解決を支援するためにライアン・ヴィンセントに行く。

基本的には、私が働いて、すべてを持っていました、

これは唯一変更したもので、うまくいきました(これはhtmlのオープニングフォームタグで、ページURL変数がPHPページ変数からその値を取得していることに注意してください)。

print "<form class=\"\" action=\"?page=$page \" method=\"POST\">"; 

これは他のPHP初心者にも役立ちます。