Datatables

mit https://datatables.net/ hat man eine einfache Möglichkeit ein Datenbank Grid in PHP zu realisieren.

CDN zum Projekt: https://cdn.datatables.net/

Hier gibt es eine DEMO

Selber testen:

create.php
<?php
/**
* Datenbank / Tabelle erstellen
*/
$db_name = "database.db";			// Name der Datenbank
$db_table = "user";				// Name der Tabelle
 
// erstelle Datenbank wenn nicht vorhanden
IF (!file_exists($db_name)) {
	$db = NEW SQLite3("$db_name", SQLITE3_OPEN_CREATE | SQLITE3_OPEN_READWRITE);
 
	// Tabellen Struktur für 'user' anlegen
	$db-> EXEC("CREATE TABLE IF NOT EXISTS  $db_table 
	(
	  'id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
	  'name' TEXT, 
	  'email' TEXT
	)
	");
 
	// Daten-Dump für USER, insgesamt 12 Zeilen (Testdaten)
	$db-> EXEC("INSERT INTO $db_table ('id','name','email') VALUES
	('1','Name1','test1@test.de'),
	('2','Name2','test2@test.de'),
	('3','Name3','test3@test.de'),
	('4','Name4','test4@test.de'),
	('5','Name5','test5@test.de'),
	('6','Name6','test6@test.de'),
	('7','Name7','test7@test.de'),
	('8','Name8','test8@test.de'),
	('9','Name9','test9@test.de'),
	('10','Name10','test10@test.de'),
	('11','Name11','test11@test.de'),
	('12','Name12','test12@test.de')
	");
 
	echo "Testdatenbank erstellt";
} ELSE {
	echo "FEHLER: Datenbank $db_name existiert bereits.";
};
?>
index.php
<!DOCTYPE html>
<html lang="de">
<head>
	<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
	<link rel="stylesheet" href="https://cdn.datatables.net/1.10.21/css/dataTables.bootstrap4.min.css" >
</head>
 
<body>
 
<div class="container">
  <h2>PHP - DataTables.js - SqlLite3 Example</h2>
  <table id="my-example" class='table table-bordered table-striped dt-responsive nowrap' style='width:100%;'>
    <thead>
      <tr>
          <th>Id</th>
          <th>Name</th>
          <th>Email</th>
      </tr>
    </thead>
  </table>
 
</div>
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.21/js/dataTables.bootstrap4.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
 
<script type="text/javascript">
  $(document).ready(function() {
      $('#my-example').dataTable({
        "Processing": true,
        'ajax':{
			url:"load.php"
		},
        "Columns": [
              { Data: 'id' } ,
              { Data: 'name' },
              { Data: 'email' }
            ]
      });  
  });
</script>
 
</body>
</html>
load.php
<?php
/**
* Datensätze aus Tabelle auslesen und zurückgeben
*/
$db_name = "database.db";
$db_table = "user";
$db = new SQLite3($db_name);
 
$results = $db->query("SELECT * FROM $db_table");
while ($row = $results->fetchArray()) {
  $data[] = $row;
}
 
$results = ["Echo" => 1,
        	"TotalRecords" => count($data),
        	"TotalDisplayRecords" => count($data),
        	"aaData" => $data ];
 
echo json_encode($results);
 
?>