programmieren:sqlite3:datatable
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:
- Einfach alle drei Scripte in ein Web-Verzeichnis kopieren
- Im Browser die 'create.php' einmalig aufrufen z.B. http:\\meineDomain.de\create.php wodurch die Datenbank mit Testdaten erstellt wird
- jetzt nur noch das Hauptscript 'index.php' aufrufen z.B. http:\\meineDomain.de\index.php
- freuen und 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); ?>
programmieren:sqlite3 (925 views) · Zuletzt geändert: 27/05/2020 09:33 von conny