• We just launched and are currently in beta. Join us as we build and grow the community.

CRUD Operation using PHP/MySQLi with DataTable and TCPDF Tutorial

Link522

Digital Ethics Advocate
L Rep
0
0
0
Rep
0
L Vouches
0
0
0
Vouches
0
Posts
48
Likes
72
Bits
2 MONTHS
2 2 MONTHS OF SERVICE
LEVEL 1 300 XP
This tutorial tackles how to a PHP Web Application with CRUD(create, read, update, and delete) operation using the two MySQLi Extensions which are OOP and Procedural. Also included, the data table library which is an extension that uses jquery to beautify and add functionality to HTML Table. PDF Generator using the TCPDF library is also included in this tutorial.

Getting Started

First of all, this tutorial requires the following software and plugins/liraries.


Before proceeding to the coding part, make sure that you have already started the "Apache" and "MySQL" server in your XAMPP's Control Panel.

Database Creation

  1. Open the PHPMyAdmin in a browser . i.e. http://localhost/phpmyadmin
  2. Create a new database naming mydatabase

    .
  3. Next, go to the SQL Tab of the PHPMyAdmin
  4. Copy the code SQL Code below and Paste it in the provided text box in the SQL Tab.
    1. CREATE

      TABLE

      `members`

      (
    2. `id`

      int

      (

      11

      )

      NOT

      NULL

      ,
    3. `firstname`

      varchar

      (

      30

      )

      NOT

      NULL

      ,
    4. `lastname`

      varchar

      (

      30

      )

      NOT

      NULL

      ,
    5. `address`

      text

      NOT

      NULL


    6. )

      ENGINE

      =

      InnoDB

      DEFAULT

      CHARSET

      =

      latin1;

    7. INSERT

      INTO

      `members`

      (

      `id`

      ,

      `firstname`

      ,

      `lastname`

      ,

      `address`

      )

      VALUES


    8. (

      1

      ,

      'neovic'

      ,

      'devierte'

      ,

      'silay city'

      )

      ,
    9. (

      2

      ,

      'gemalyn'

      ,

      'cepe'

      ,

      'carmen, bohol'

      )

      ,
    10. (

      3

      ,

      'lee'

      ,

      'apilinga'

      ,

      'bacolod'

      )

      ,
    11. (

      4

      ,

      'julyn'

      ,

      'divinagracia'

      ,

      'eb magalona'

      )

      ,
    12. (

      5

      ,

      'cristine'

      ,

      'demapanag'

      ,

      'talisay'

      )

      ;

    13. ALTER

      TABLE

      `members`
    14. ADD

      PRIMARY KEY

      (

      `id`

      )

      ;
    15. ALTER

      TABLE

      `members`
    16. MODIFY

      `id`

      int

      (

      11

      )

      NOT

      NULL

      AUTO_INCREMENT

      ,

      AUTO_INCREMENT

      =

      6

      ;

    You can also Import the provided SQL file that is included in the source code zip file.

Database Connection

Now, we will create new file naming connection.php

. Copy and Paste the code below in you created file. Make sure to modify the database credentials according to your database setup.

  1. <?php
  2. //for MySQLi OOP
  3. $conn

    =

    new

    mysqli(

    'localhost'

    ,

    'root'

    ,

    ''

    ,

    'mydatabase'

    )

    ;
  4. if

    (

    $conn

    ->

    connect_error

    )

    {
  5. die

    (

    "Connection failed: "

    .

    $conn

    ->

    connect_error

    )

    ;
  6. }
  7. ////////////////

  8. //for MySQLi Procedural
  9. // $conn = mysqli_connect('localhost', 'root', '', 'mydatabase');
  10. // if(!$conn){
  11. // die("Connection failed: " . mysqli_connect_error());
  12. // }
  13. ////////////////
  14. ?>

Creating the Interface

Copy and Paste the below codes and save the files as the given file name above the scripts.

index.php


  1. <?php
  2. session_start

    (

    )

    ;
  3. ?>
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="utf-8">
  8. <title>CRUD Operation using PHP/MySQLi with DataTable and PDF Generator using TCPDF</title>
  9. <link rel="stylesheet" type="text/css" href="bootstrap/css/bootstrap.min.css">
  10. <link rel="stylesheet" type="text/css" href="datatable/dataTable.bootstrap.min.css">
  11. <style>
  12. .height10{
  13. height:10px;
  14. }
  15. .mtop10{
  16. margin-top:10px;
  17. }
  18. .modal-label{
  19. position:relative;
  20. top:7px
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <div class="container">
  26. <h1 class="page-header text-center">CRUD Operation with DataTable and PDF</h1>
  27. <div class="row">
  28. <div class="col-sm-8 col-sm-offset-2">
  29. <div class="row">
  30. <?php
  31. if

    (

    isset

    (

    $_SESSION

    [

    'error'

    ]

    )

    )

    {
  32. echo
  33. "
  34. <div class='alert alert-danger text-center'>
  35. <button class='close'>&times;</button>
  36. "

    .

    $_SESSION

    [

    'error'

    ]

    .

    "
  37. </div>
  38. "

    ;
  39. unset

    (

    $_SESSION

    [

    'error'

    ]

    )

    ;
  40. }
  41. if

    (

    isset

    (

    $_SESSION

    [

    'success'

    ]

    )

    )

    {
  42. echo
  43. "
  44. <div class='alert alert-success text-center'>
  45. <button class='close'>&times;</button>
  46. "

    .

    $_SESSION

    [

    'success'

    ]

    .

    "
  47. </div>
  48. "

    ;
  49. unset

    (

    $_SESSION

    [

    'success'

    ]

    )

    ;
  50. }
  51. ?>
  52. </div>
  53. <div class="row">
  54. <a href="#addnew" data-toggle="modal" class="btn btn-primary"><span class="glyphicon glyphicon-plus"></span> New</a>
  55. <a href="print_pdf.php" class="btn btn-success pull-right"><span class="glyphicon glyphicon-print"></span> PDF</a>
  56. </div>
  57. <div class="height10">
  58. </div>
  59. <div class="row">
  60. <table id="myTable" class="table table-bordered table-striped">
  61. <thead>
  62. <th>ID</th>
  63. <th>Firstname</th>
  64. <th>Lastname</th>
  65. <th>Address</th>
  66. <th>Action</th>
  67. </thead>
  68. <tbody>
  69. <?php
  70. include_once

    (

    'connection.php'

    )

    ;
  71. $sql

    =

    "SELECT * FROM members"

    ;

  72. //use for MySQLi-OOP
  73. $query

    =

    $conn

    ->

    query

    (

    $sql

    )

    ;
  74. while

    (

    $row

    =

    $query

    ->

    fetch_assoc

    (

    )

    )

    {
  75. echo
  76. "<tr>
  77. <td>"

    .

    $row

    [

    'id'

    ]

    .

    "</td>
  78. <td>"

    .

    $row

    [

    'firstname'

    ]

    .

    "</td>
  79. <td>"

    .

    $row

    [

    'lastname'

    ]

    .

    "</td>
  80. <td>"

    .

    $row

    [

    'address'

    ]

    .

    "</td>
  81. <td>
  82. <a href='#edit_"

    .

    $row

    [

    'id'

    ]

    .

    "' class='btn btn-success btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-edit'></span> Edit</a>
  83. <a href='#delete_"

    .

    $row

    [

    'id'

    ]

    .

    "' class='btn btn-danger btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-trash'></span> Delete</a>
  84. </td>
  85. </tr>"

    ;
  86. include

    (

    'edit_delete_modal.php'

    )

    ;
  87. }
  88. /////////////////

  89. //use for MySQLi Procedural
  90. // $query = mysqli_query($conn, $sql);
  91. // while($row = mysqli_fetch_assoc($query)){
  92. // echo
  93. // "<tr>
  94. // <td>".$row['id']."</td>
  95. // <td>".$row['firstname']."</td>
  96. // <td>".$row['lastname']."</td>
  97. // <td>".$row['address']."</td>
  98. // <td>
  99. // <a href='#edit_".$row['id']."' class='btn btn-success btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-edit'></span> Edit</a>
  100. // <a href='#delete_".$row['id']."' class='btn btn-danger btn-sm' data-toggle='modal'><span class='glyphicon glyphicon-trash'></span> Delete</a>
  101. // </td>
  102. // </tr>";
  103. // include('edit_delete_modal.php');
  104. // }
  105. /////////////////

  106. ?>
  107. </tbody>
  108. </table>
  109. </div>
  110. </div>
  111. </div>
  112. </div>
  113. <?php

    include

    (

    'add_modal.php'

    )

    ?>

  114. <script src="jquery/jquery.min.js"></script>
  115. <script src="bootstrap/js/bootstrap.min.js"></script>
  116. <script src="datatable/jquery.dataTables.min.js"></script>
  117. <script src="datatable/dataTable.bootstrap.min.js"></script>
  118. <!-- generate datatable on our table -->
  119. <script>
  120. $(document).ready(function(){
  121. //inialize datatable
  122. $('#myTable').DataTable();

  123. //hide alert
  124. $(document).on('click', '.close', function(){
  125. $('.alert').hide();
  126. })
  127. });
  128. </script>
  129. </body>
  130. </html>

add_modal.php


  1. <!-- Add New -->
  2. <div

    class

    =

    "modal fade"

    id

    =

    "addnew"

    tabindex

    =

    "-1"

    role=

    "dialog"

    aria-labelledby=

    "myModalLabel"

    aria-hidden=

    "true"

    >
  3. <div

    class

    =

    "modal-dialog"

    >
  4. <div

    class

    =

    "modal-content"

    >
  5. <div

    class

    =

    "modal-header"

    >
  6. <button

    type

    =

    "button"

    class

    =

    "close"

    data-dismiss=

    "modal"

    aria-hidden=

    "true"

    >

    &times;

    </

    button

    >
  7. <center

    ><h4

    class

    =

    "modal-title"

    id

    =

    "myModalLabel"

    >

    Add New</

    h4

    ></

    center

    >
  8. </

    div

    >
  9. <div

    class

    =

    "modal-body"

    >
  10. <div

    class

    =

    "container-fluid"

    >
  11. <form

    method

    =

    "POST"

    action

    =

    "add.php"

    >
  12. <div

    class

    =

    "row form-group"

    >
  13. <div

    class

    =

    "col-sm-2"

    >
  14. <label

    class

    =

    "control-label modal-label"

    >

    Firstname:</

    label

    >
  15. </

    div

    >
  16. <div

    class

    =

    "col-sm-10"

    >
  17. <input

    type

    =

    "text"

    class

    =

    "form-control"

    name

    =

    "firstname"

    required>
  18. </

    div

    >
  19. </

    div

    >
  20. <div

    class

    =

    "row form-group"

    >
  21. <div

    class

    =

    "col-sm-2"

    >
  22. <label

    class

    =

    "control-label modal-label"

    >

    Lastname:</

    label

    >
  23. </

    div

    >
  24. <div

    class

    =

    "col-sm-10"

    >
  25. <input

    type

    =

    "text"

    class

    =

    "form-control"

    name

    =

    "lastname"

    required>
  26. </

    div

    >
  27. </

    div

    >
  28. <div

    class

    =

    "row form-group"

    >
  29. <div

    class

    =

    "col-sm-2"

    >
  30. <label

    class

    =

    "control-label modal-label"

    >

    Address:</

    label

    >
  31. </

    div

    >
  32. <div

    class

    =

    "col-sm-10"

    >
  33. <input

    type

    =

    "text"

    class

    =

    "form-control"

    name

    =

    "address"

    required>
  34. </

    div

    >
  35. </

    div

    >
  36. </

    div

    >
  37. </

    div

    >
  38. <div

    class

    =

    "modal-footer"

    >
  39. <button

    type

    =

    "button"

    class

    =

    "btn btn-default"

    data-dismiss=

    "modal"

    ><span

    class

    =

    "glyphicon glyphicon-remove"

    ></

    span

    >

    Cancel</

    button

    >
  40. <button

    type

    =

    "submit"

    name

    =

    "add"

    class

    =

    "btn btn-primary"

    ><span

    class

    =

    "glyphicon glyphicon-floppy-disk"

    ></

    span

    >

    Save</

    a

    >
  41. </

    form

    >
  42. </

    div

    >

  43. </

    div

    >
  44. </

    div

    >
  45. </

    div

    >

edit_delete_modal.php


  1. <!-- Edit -->
  2. <div class="modal fade" id="edit_<?php

    echo

    $row

    [

    'id'

    ]

    ;

    ?>

    " tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  3. <div class="modal-dialog">
  4. <div class="modal-content">
  5. <div class="modal-header">
  6. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  7. <center><h4 class="modal-title" id="myModalLabel">Edit Member</h4></center>
  8. </div>
  9. <div class="modal-body">
  10. <div class="container-fluid">
  11. <form method="POST" action="edit.php">
  12. <input type="hidden" class="form-control" name="id" value="<?php

    echo

    $row

    [

    'id'

    ]

    ;

    ?>

    ">
  13. <div class="row form-group">
  14. <div class="col-sm-2">
  15. <label class="control-label modal-label">Firstname:</label>
  16. </div>
  17. <div class="col-sm-10">
  18. <input type="text" class="form-control" name="firstname" value="<?php

    echo

    $row

    [

    'firstname'

    ]

    ;

    ?>

    ">
  19. </div>
  20. </div>
  21. <div class="row form-group">
  22. <div class="col-sm-2">
  23. <label class="control-label modal-label">Lastname:</label>
  24. </div>
  25. <div class="col-sm-10">
  26. <input type="text" class="form-control" name="lastname" value="<?php

    echo

    $row

    [

    'lastname'

    ]

    ;

    ?>

    ">
  27. </div>
  28. </div>
  29. <div class="row form-group">
  30. <div class="col-sm-2">
  31. <label class="control-label modal-label">Address:</label>
  32. </div>
  33. <div class="col-sm-10">
  34. <input type="text" class="form-control" name="address" value="<?php

    echo

    $row

    [

    'address'

    ]

    ;

    ?>

    ">
  35. </div>
  36. </div>
  37. </div>
  38. </div>
  39. <div class="modal-footer">
  40. <button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Cancel</button>
  41. <button type="submit" name="edit" class="btn btn-success"><span class="glyphicon glyphicon-check"></span> Update</a>
  42. </form>
  43. </div>

  44. </div>
  45. </div>
  46. </div>

  47. <!-- Delete -->
  48. <div class="modal fade" id="delete_<?php

    echo

    $row

    [

    'id'

    ]

    ;

    ?>

    " tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  49. <div class="modal-dialog">
  50. <div class="modal-content">
  51. <div class="modal-header">
  52. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  53. <center><h4 class="modal-title" id="myModalLabel">Delete Member</h4></center>
  54. </div>
  55. <div class="modal-body">
  56. <p class="text-center">Are you sure you want to Delete</p>
  57. <h2 class="text-center"><?php

    echo

    $row

    [

    'firstname'

    ]

    .

    ' '

    .

    $row

    [

    'lastname'

    ]

    ;

    ?>

    </h2>
  58. </div>
  59. <div class="modal-footer">
  60. <button type="button" class="btn btn-default" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Cancel</button>
  61. <a href="delete.php?id=<?php

    echo

    $row

    [

    'id'

    ]

    ;

    ?>

    " class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span> Yes</a>
  62. </div>

  63. </div>
  64. </div>
  65. </div>

Creating the Operations Scripts

Copy and paste the following codes and save the files as the file name above.

add.php


  1. <?php
  2. session_start

    (

    )

    ;
  3. include_once

    (

    'connection.php'

    )

    ;

  4. if

    (

    isset

    (

    $_POST

    [

    'add'

    ]

    )

    )

    {
  5. $firstname

    =

    $_POST

    [

    'firstname'

    ]

    ;
  6. $lastname

    =

    $_POST

    [

    'lastname'

    ]

    ;
  7. $address

    =

    $_POST

    [

    'address'

    ]

    ;
  8. $sql

    =

    "INSERT INTO members (firstname, lastname, address) VALUES ('$firstname

    ', '$lastname

    ', '$address

    ')"

    ;

  9. //use for MySQLi OOP
  10. if

    (

    $conn

    ->

    query

    (

    $sql

    )

    )

    {
  11. $_SESSION

    [

    'success'

    ]

    =

    'Member added successfully'

    ;
  12. }
  13. ///////////////

  14. //use for MySQLi Procedural
  15. // if(mysqli_query($conn, $sql)){
  16. // $_SESSION['success'] = 'Member added successfully';
  17. // }
  18. //////////////

  19. else

    {
  20. $_SESSION

    [

    'error'

    ]

    =

    'Something went wrong while adding'

    ;
  21. }
  22. }
  23. else

    {
  24. $_SESSION

    [

    'error'

    ]

    =

    'Fill up add form first'

    ;
  25. }

  26. header

    (

    'location: index.php'

    )

    ;
  27. ?>

edit.php


  1. <?php
  2. session_start

    (

    )

    ;
  3. include_once

    (

    'connection.php'

    )

    ;

  4. if

    (

    isset

    (

    $_POST

    [

    'edit'

    ]

    )

    )

    {
  5. $id

    =

    $_POST

    [

    'id'

    ]

    ;
  6. $firstname

    =

    $_POST

    [

    'firstname'

    ]

    ;
  7. $lastname

    =

    $_POST

    [

    'lastname'

    ]

    ;
  8. $address

    =

    $_POST

    [

    'address'

    ]

    ;
  9. $sql

    =

    "UPDATE members SET firstname = '$firstname

    ', lastname = '$lastname

    ', address = '$address

    ' WHERE id = '$id

    '"

    ;

  10. //use for MySQLi OOP
  11. if

    (

    $conn

    ->

    query

    (

    $sql

    )

    )

    {
  12. $_SESSION

    [

    'success'

    ]

    =

    'Member updated successfully'

    ;
  13. }
  14. ///////////////

  15. //use for MySQLi Procedural
  16. // if(mysqli_query($conn, $sql)){
  17. // $_SESSION['success'] = 'Member updated successfully';
  18. // }
  19. ///////////////

  20. else

    {
  21. $_SESSION

    [

    'error'

    ]

    =

    'Something went wrong in updating member'

    ;
  22. }
  23. }
  24. else

    {
  25. $_SESSION

    [

    'error'

    ]

    =

    'Select member to edit first'

    ;
  26. }

  27. header

    (

    'location: index.php'

    )

    ;

  28. ?>

delete.php


  1. <?php
  2. session_start

    (

    )

    ;
  3. include_once

    (

    'connection.php'

    )

    ;

  4. if

    (

    isset

    (

    $_GET

    [

    'id'

    ]

    )

    )

    {
  5. $sql

    =

    "DELETE FROM members WHERE id = '"

    .

    $_GET

    [

    'id'

    ]

    .

    "'"

    ;

  6. //use for MySQLi OOP
  7. if

    (

    $conn

    ->

    query

    (

    $sql

    )

    )

    {
  8. $_SESSION

    [

    'success'

    ]

    =

    'Member deleted successfully'

    ;
  9. }
  10. ////////////////

  11. //use for MySQLi Procedural
  12. // if(mysqli_query($conn, $sql)){
  13. // $_SESSION['success'] = 'Member deleted successfully';
  14. // }
  15. /////////////////

  16. else

    {
  17. $_SESSION

    [

    'error'

    ]

    =

    'Something went wrong in deleting member'

    ;
  18. }
  19. }
  20. else

    {
  21. $_SESSION

    [

    'error'

    ]

    =

    'Select member to delete first'

    ;
  22. }

  23. header

    (

    'location: index.php'

    )

    ;
  24. ?>

Generating PDF using TCPDF

Copy the code below and paste it into the blank file in your text editor and save it as print_pdf.php



  1. <?php
  2. function

    generateRow(

    )

    {
  3. $contents

    =

    ''

    ;
  4. include_once

    (

    'connection.php'

    )

    ;
  5. $sql

    =

    "SELECT * FROM members"

    ;

  6. //use for MySQLi OOP
  7. $query

    =

    $conn

    ->

    query

    (

    $sql

    )

    ;
  8. while

    (

    $row

    =

    $query

    ->

    fetch_assoc

    (

    )

    )

    {
  9. $contents

    .=

    "
  10. <tr>
  11. <td>"

    .

    $row

    [

    'id'

    ]

    .

    "</td>
  12. <td>"

    .

    $row

    [

    'firstname'

    ]

    .

    "</td>
  13. <td>"

    .

    $row

    [

    'lastname'

    ]

    .

    "</td>
  14. <td>"

    .

    $row

    [

    'address'

    ]

    .

    "</td>
  15. </tr>
  16. "

    ;
  17. }
  18. ////////////////

  19. //use for MySQLi Procedural
  20. // $query = mysqli_query($conn, $sql);
  21. // while($row = mysqli_fetch_assoc($query)){
  22. // $contents .= "
  23. // <tr>
  24. // <td>".$row['id']."</td>
  25. // <td>".$row['firstname']."</td>
  26. // <td>".$row['lastname']."</td>
  27. // <td>".$row['address']."</td>
  28. // </tr>
  29. // ";
  30. // }
  31. ////////////////

  32. return

    $contents

    ;
  33. }

  34. require_once

    (

    'tcpdf/tcpdf.php'

    )

    ;
  35. $pdf

    =

    new

    TCPDF(

    'P'

    ,

    PDF_UNIT,

    PDF_PAGE_FORMAT,

    true

    ,

    'UTF-8'

    ,

    false

    )

    ;
  36. $pdf

    ->

    SetCreator

    (

    PDF_CREATOR)

    ;
  37. $pdf

    ->

    SetTitle

    (

    "Generated PDF using TCPDF"

    )

    ;
  38. $pdf

    ->

    SetHeaderData

    (

    ''

    ,

    ''

    ,

    PDF_HEADER_TITLE,

    PDF_HEADER_STRING)

    ;
  39. $pdf

    ->

    setHeaderFont

    (

    Array

    (

    PDF_FONT_NAME_MAIN,

    ''

    ,

    PDF_FONT_SIZE_MAIN)

    )

    ;
  40. $pdf

    ->

    setFooterFont

    (

    Array

    (

    PDF_FONT_NAME_DATA,

    ''

    ,

    PDF_FONT_SIZE_DATA)

    )

    ;
  41. $pdf

    ->

    SetDefaultMonospacedFont

    (

    'helvetica'

    )

    ;
  42. $pdf

    ->

    SetFooterMargin

    (

    PDF_MARGIN_FOOTER)

    ;
  43. $pdf

    ->

    SetMargins

    (

    PDF_MARGIN_LEFT,

    '10'

    ,

    PDF_MARGIN_RIGHT)

    ;
  44. $pdf

    ->

    setPrintHeader

    (

    false

    )

    ;
  45. $pdf

    ->

    setPrintFooter

    (

    false

    )

    ;
  46. $pdf

    ->

    SetAutoPageBreak

    (

    TRUE

    ,

    10

    )

    ;
  47. $pdf

    ->

    SetFont

    (

    'helvetica'

    ,

    ''

    ,

    11

    )

    ;
  48. $pdf

    ->

    AddPage

    (

    )

    ;
  49. $content

    =

    ''

    ;
  50. $content

    .=

    '
  51. <h2 align="center">Generated PDF using TCPDF</h2>
  52. <h4>Members Table</h4>
  53. <table border="1" cellspacing="0" cellpadding="3">
  54. <tr>
  55. <th width="5%">ID</th>
  56. <th width="20%">Firstname</th>
  57. <th width="20%">Lastname</th>
  58. <th width="55%">Address</th>
  59. </tr>
  60. '

    ;
  61. $content

    .=

    generateRow(

    )

    ;
  62. $content

    .=

    '</table>'

    ;
  63. $pdf

    ->

    writeHTML

    (

    $content

    )

    ;
  64. $pdf

    ->

    Output

    (

    'members.pdf'

    ,

    'I'

    )

    ;


  65. ?>

Note: configure the require_once function path according to your TCTPDF Library path. In my case, it is compiled in a folder naming tcpdf



Demo

That's it. You are good to go. I hope this will help you for your future PHP Projects.

P.S. If you have any comments or suggestions on how to improve this, please don't hesitate to comment below or send me a message.

Happy Coding :)

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.

Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.

FOR YOUR OWN SAFETY, PLEASE:

1. Re-scan downloaded files using your personal virus checker before using it.

2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.


Download
You must upgrade your account or reply in the thread to view the hidden content.
 

452,496

332,845

332,853

Top