0

I am fairly new to programming, and this site was recommended to me by a friend. I created a table for my inventory and I want to add pagination to this table. How can I do this? I appreciate the help, and thanks in advance!

<?php include ("Connection.php"); ?>
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="Design.css">

    <script type=" text/javascript">
    function deleteRecord(id) {
      if (confirm("Are you sure you want to delete this record?")) {
        window.location.replace("delete.php?id=" +id);
      } 
    } 
    </script>
  </head>

  <body>

    <?php
    $qry = $con->prepare("SELECT * FROM tableinvplastic");
    $qry->execute();
    $rows = $qry->fetchAll(PDO::FETCH_ASSOC);
    ?>

    <table>
      <th><center>ID</center></th>
      <th><center>Item Name</center></th>
      <th><center>Brand</center></th>
      <th><center>Initial Price</center></th>
      <th><center>Sales Price</center></th>
      <th><center>Quantity</center></th>
      <th><center>Dealer</center></th>
      <th><center>Edit</center></th>
      <th><center>Delete</center></th>
      <th><center>Add</center></th>
      <th><center>Minus</center></th>

      <?php
      foreach($rows as $row) {
        print "<tr>";
        print "<td>" .$row['ID']. "</td>";
        print "<td>" .$row['ItemName']. "</td>";
        print "<td>" .$row['Brand']. "</td>";
        print "<td>" .$row['InitialPrice']. "</td>";
        print "<td>" .$row['SalesPrice']. "</td>";
        print "<td>" .$row["Quantity"]. "</td>";
        print "<td>" .$row["Dealer"]. "</td>";
        print "<td><a href='UpdatePlastic.php?id=" .$row["ID"]. "'>Edit</a></td>";
        print "<td><a href='#!' onclick = 'deleteRecord(" .$row["ID"]. ");'>Delete</a></td>";
        print "<td><a href='Add.php?id=" .$row["ID"]. "'>Add</a></td>";
        print "<td><a href='Minus.php?id=" .$row["ID"]. "'>Minus</a></td>";
        print "</tr>";
      }
      ?>
    </table>

    <style>
    table {
      width: 60%;
      position: absolute;
      top: 200px;
      left: 100px;
    }

    table, th, td {
      border: 1px solid black;
      border-collapse: collapse;
    }

    th {
      padding: 5px;
      text-align: left;
      background-color: #4CAF50;
    }
    </style>
  </body>
</html> 
Will
  • 24,082
  • 14
  • 97
  • 108
SonicFreak
  • 33
  • 2
  • 5
  • What do you mean with "add pagination"? Sorry i'm italian and i don't understood that :P But if you explain maybe i can help you ;) – Giuseppe De Paola Dec 30 '15 at 11:23
  • i want to limit how many rows that can show at a time to 20, then the others replace the ones in current view when i click the next button i dont know where to start so i ask for help thanks. – SonicFreak Dec 30 '15 at 11:27
  • Seams that your question has already been answered here: [http://stackoverflow.com/questions/19605078/how-to-use-pagination-on-html-tables](http://stackoverflow.com/questions/19605078/how-to-use-pagination-on-html-tables) – Erik Kalkoken Dec 30 '15 at 11:28
  • This is the noobest way. take 2 $var - limit and offset, initialize them and read them from the URL. When the next or previous button is clicked, pass the value to the URL and the page will reload, reading the limit and offset from the url and running the new query fetching updated data. Your query should be like `SELECT * FROM table LIMIT $offset,$limit` – Robot Boy Dec 30 '15 at 12:08

1 Answers1

2

If you want to paginate your table you can do that:

<?php
 include ("Connection.php");
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="Design.css">

<script type=" text/javascript">
function deleteRecord(id) {
if(confirm("Are you sure you want to delete this record?")) {
window.location.replace("delete.php?id=" +id);
} 
} 
</script>

</head>
<body>
<table>
<th><center>ID</center> </th>
<th><center>Item Name</center> </th>
<th><center>Brand</center> </th>
<th><center>Initial Price</center> </th>
<th><center>Sales Price</center> </th>
<th><center>Quantity</center> </th>
<th><center>Dealer</center> </th>
<th><center>Edit</center> </th>
<th><center>Delete</center> </th>
<th><center>Add</center> </th>
<th><center>Minus</center> </th>
  <?php 
  $query = "SELECT * FROM tableinvplastic ORDER BY id DESC LIMIT 1";
  $stmt = $con->query($query);
  $data = $stmt->fetch(PDO::FETCH_ASSOC);
  $num_rows = $data['id'] / 20;
<?php
function get_result(index,initial,limit)
{
   $qry = $con->prepare("SELECT * FROM tableinvplastic LIMIT $initial,$limit");
   $qry -> execute();
   if($qry->rowCount() > 0)
   {
      return $rows;
   }
else return  'empty';
}
?>
<?php
     for($i=0;$i<$num_rows;$i++)
{
 if($i = 0) 
{
$limit = 0;
$initial = 20;
}
else 
{
$initial = ($i*20+1)
limit = $i*20*2);
}
$rows = get_result($i,$initial,$limit);
print "<tr>";
    print "<td>" .$row['ID']. "</td>";
    print "<td>" .$row['ItemName']. "</td>";
    print "<td>" .$row['Brand']. "</td>";
    print "<td>" .$row['InitialPrice']. "</td>";
    print "<td>" .$row['SalesPrice']. "</td>";
    print "<td>" .$row["Quantity"]. "</td>";
    print "<td>" .$row["Dealer"]. "</td>";
    print "<td><a href='UpdatePlastic.php?id=" .$row["ID"]. "'>Edit</a></td>";
    print "<td><a href='#!' onclick = 'deleteRecord(" .$row["ID"]. ");'>Delete</a></td>";
    print "<td><a href='Add.php?id=" .$row["ID"]. "'>Add</a></td>";
    print "<td><a href='Minus.php?id=" .$row["ID"]. "'>Minus</a></td>";
    print "</tr>";
}

</table>

<style>
table {
width:60%;
position : absolute;
top : 200px;
left : 100px;
}
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th {
padding: 5px;
text-align: left;
background-color: #4CAF50;
}
</style>
</body>
</html>

Something like this should work...i haven't a local server right now i'm sorry.