Install nextjs npx create-next-app@latest https://nextjs.org/docs/getting-started/installation
app\page.js
//app\page.js import UserDataComponent from '@/components/UserDataComponent' import { Suspense } from "react"; export default async function Home() { return ( <div className="w-screen py-20 flex justify-center flex-col items-center"> <div className="flex items-center justify-between gap-1 mb-5"> <h1 className="text-4xl font-bold">Next.js 14 Fetch data from the database using PHP API Mysql</h1> </div> <div className="overflow-x-auto"> <Suspense fallback="Loading..."> <UserDataComponent/> </Suspense> </div> </div> ); }components\UserDataComponent.js
//components\UserDataComponent.js "use client"; import Axios from 'axios'; import React, { useEffect, useState } from "react"; const UserDataComponent = () => { const [userData,setUserData]= useState([]); useEffect(() => { const fetchUsers = async () => { Axios.get('http://localhost:8888/devproject/getUserData.php') .then(function (data) { //handle success console.log('userData',data) setUserData(data.data) }) .catch(function (error) { //handle error console.log(error) }); } fetchUsers() }, []) return ( <div> <h1>User List</h1> <table className="table table-zebra"> <thead className="text-sm text-gray-700 uppercase bg-gray-50"> <tr> <th className="py-3 px-6">#</th> <th className="py-3 px-6">Name</th> <th className="py-3 px-6">Email</th> <th className="py-3 px-6">Password</th> </tr> </thead> <tbody> {userData.map((rs, index) => ( <tr key={rs.id} className="bg-white border-b"> <td className="py-3 px-6">{rs.id}</td> <td className="py-3 px-6">{rs.name}</td> <td className="py-3 px-6">{rs.email}</td> <td className="py-3 px-6">{rs.password}</td> </tr> ))} </tbody> </table> </div> ) } export default UserDataComponentrun C:\nextjs>npm run dev
dbcon.php
//dbcon.php <?php //$mysqli = new mysqli("hostName", "dbUserId", "dbPassword", "dbName"); $mysqli = new mysqli("localhost", "root", "root", "devproject"); ?>getUserData.php
//getUserData.php <?php //getUserData.php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: access"); header("Access-Control-Allow-Methods: GET"); header("Content-Type: application/json; charset=UTF-8"); header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"); //Database Connection include 'dbcon.php'; $value=array(); $Sql_Query ="SELECT * from users"; $result = $mysqli->query($Sql_Query); if (@$result->num_rows >0) { while($row[] = $result->fetch_assoc()) { $item = $row; $json = json_encode($item,JSON_PRETTY_PRINT); } echo @$json; } else { echo json_encode($value,JSON_PRETTY_PRINT);; } $mysqli->close(); ?>