-
-
Add School |
-
School List|
-
Add User |
-
Upload User |
-
User List |
-
+
+ Add School
+ School List
+ Add User
+ Upload User
+ User List
+ signOut()}>Sign out
diff --git a/src/pages/api/listUsers copy.js b/src/pages/api/listUsers copy.js
new file mode 100644
index 0000000..2c8f243
--- /dev/null
+++ b/src/pages/api/listUsers copy.js
@@ -0,0 +1,91 @@
+import csv from 'csv-parser';
+import fs from 'fs';
+import sqlite3 from 'sqlite3';
+
+export default function handler(req,res) {
+
+console.log(req.body.school)
+// const {
+// query: { name, keyword },
+// method,
+// } = req;
+// console.log(name, keyword, method);
+
+ const DB_NAME = 'data/appUser.db';
+ const TABLE_NAME = 'user';
+
+ // Open a connection to the SQLite database
+ const db = new sqlite3.Database(DB_NAME);
+
+ const query = `SELECT * FROM ${TABLE_NAME}`;
+
+ function getAllRows(tableName) {
+ return new Promise((resolve, reject) => {
+
+ db.get(`SELECT COUNT(*) AS count FROM ${tableName}`, (err, row) => {
+ if (err) {
+ console.error(err.message);
+ return;
+ }
+
+ // Access the row count
+ const rowCount = row.count;
+ // console.log(`Row count: ${rowCount}`);
+ const pageNo=0;
+ const perPage=5;
+ let noOfPage= Math.floor(rowCount/perPage); if((rowCount % perPage) !=0) noOfPage++;
+ console.log(`noOfPage: ${noOfPage}`);
+ const offset=(rowCount-5*perPage*pageNo)-1;
+ const sql = `SELECT * FROM ${tableName} ORDER BY id DESC LIMIT 5 OFFSET ${rowCount-1}`;
+ db.all(sql, [], (err, rows) => {
+ if (err) {
+ reject(err);
+ return;
+ }
+ const data = rows;
+ resolve(data);
+ });
+ });
+
+
+ });
+ };
+ async function doSomething() {
+ try {
+ const returnData = await getAllRows('user');
+ res.setHeader('Content-Type', 'application/json')
+ res.status(200).json(returnData)
+ // console.log(data);
+ } catch (err) {
+ console.error(err);
+ }
+ }
+
+ doSomething();
+// const returnData = getAllRows('user');
+// console.log(getAllRows('user'));
+// const returnData= db.run('SELECT * FROM user');
+
+// fs.createReadStream('data/user.csv')
+// .pipe(csv())
+// .on('data', (data) => {
+// const values = Object.values(data);
+// const placeholders = values.map(() => '?').join(',');
+// const sql = `INSERT INTO ${TABLE_NAME} (${Object.keys(data).join(',')}) VALUES (${placeholders})`;
+// db.run(sql, values, (err) => {
+// if (err) {
+// console.error(err);
+// }
+// });
+// })
+// .on('end', () => {
+// console.log(`Data inserted successfully into table ${TABLE_NAME}`);
+
+// // Close the database connection
+// db.close();
+// });
+
+
+
+}
+
diff --git a/src/pages/api/listUsers.js b/src/pages/api/listUsers.js
index d78ecaa..dc02289 100644
--- a/src/pages/api/listUsers.js
+++ b/src/pages/api/listUsers.js
@@ -19,22 +19,40 @@ console.log(req.body.school)
const query = `SELECT * FROM ${TABLE_NAME}`;
- function getAllRows(tableName) {
+ function getAllRows(tableName, pageNumber, pageSize) {
+ const offset = (pageNumber - 1) * pageSize;
+ const sql = `SELECT * FROM ${tableName} LIMIT ${pageSize} OFFSET ${offset}`;
+
return new Promise((resolve, reject) => {
- const sql = `SELECT * FROM ${tableName}`;
db.all(sql, [], (err, rows) => {
if (err) {
reject(err);
return;
}
- const data = rows;
+ db.get(`SELECT COUNT(*) AS count FROM ${tableName}`, (err, row) => {
+ if (err) {
+ console.error(err.message);
+ return;
+ }
+
+ // Access the row count
+ const rowCount = row.count;
+ console.log(`Row count: ${rowCount}`);
+ const maxPageNumber = Math.ceil(rowCount / pageSize);
+ const pages = Array.from({ length: maxPageNumber }, (_, index) => index + 1);
+ let tData={data:rows,maxPageNumber:pages}
+ const data = tData;
resolve(data);
+ });
+ // let tData={data:rows,page:7}
+ // const data = tData;
+ // resolve(data);
});
});
};
async function doSomething() {
try {
- const returnData = await getAllRows('user');
+ const returnData = await getAllRows('user',4,10);
res.setHeader('Content-Type', 'application/json')
res.status(200).json(returnData)
// console.log(data);
diff --git a/src/pages/user-list.jsx b/src/pages/user-list.jsx
index a30a2c2..35d48e4 100644
--- a/src/pages/user-list.jsx
+++ b/src/pages/user-list.jsx
@@ -3,11 +3,13 @@ import Link from 'next/link'
import NavBar from '../components/NavBar'
export default function Modal() {
const [user, setUser] = useState([]);
+ const [maxPageNumber, setMaxPageNumber] = useState([]);
const fetchData = async () => {
const response = await fetch("/api/listUsers");
const data = await response.json();
- // console.log(data)
- return setUser(data);
+ console.log(data)
+ setMaxPageNumber(data.maxPageNumber);
+ return setUser(data.data);
}
// console.log(user)
@@ -21,6 +23,28 @@ const fetchData = async () => {
+
+
+
@@ -36,12 +60,12 @@ const fetchData = async () => {
+ ID |
Name |
Mobile |
Email |
- School Name |
+ School ID |
User Type |
- Start Date |
End Date |
Action |
@@ -50,12 +74,12 @@ const fetchData = async () => {
{user.map
(data=>
+ {data.id} |
{data.uname} |
{data.phone} |
{data.email} |
{data.school} |
{data.type} |
- {data.start_date} |
{data.end_date} |
@@ -65,12 +89,6 @@ const fetchData = async () => {
{/* Edit */}
-
|