• PHP 结合MYSQL简单的实现了Todo List 功能


    具体功能如下:

    1、增加、修改、删除及标记任务完成;

    2、历时任务查看;

    3、任务优先级 ;

    效果图:

     

    conn.php 数据库操作文件

     1 <?php
     2 
     3 function add($data) {
     4     $sql = "insert into todo(content,level,status,op_date) values('".$data["content"]."','".$data["level"]."','0',current_date) ";
     5     executeSql($sql);
     6 }
     7 
     8 function edit($data) {
     9     $sql = "update todo set content='".$data["content"]."',level='".$data["level"]."' where id='".$data["id"]."'";
    10     executeSql($sql);
    11 }
    12 
    13 function del($id) {
    14     $sql = "delete from todo where id='$id' ";
    15     executeSql($sql);
    16 }
    17 
    18 function complete($id) {
    19     $sql = "update todo set status='1',complete_date=current_date where id='$id' ";
    20     executeSql($sql);
    21 }
    22 
    23 function getById($id) {
    24     $sql = "select * from todo where id='$id' ";
    25     $result = executeSql($sql);
    26     $num_results = $result->num_rows;
    27     
    28     $data = array ();
    29     for($i = 0; $i < $num_results$i ++) {
    30         $row = ( array ) $result->fetch_assoc ();
    31         $data = $row;
    32         break;
    33     }
    34     
    35     $result->free();
    36     return $data;
    37 }
    38 
    39 function getList() {
    40     $sql = "select * from todo where status='0' order by level asc";
    41 
    42     $result = executeSql($sql);
    43     
    44     $num_results = $result->num_rows;
    45     
    46     $data = array ();
    47     for($i = 0; $i < $num_results$i ++) {
    48         $row = ( array ) $result->fetch_assoc ();
    49         array_push ( $data$row );
    50     }
    51     
    52     $result->free();
    53     return $data;
    54 }
    55 
    56 function getHasCompleteList() {
    57     $sql = "select * from todo where status='1' order by complete_date asc";
    58 
    59     $result = executeSql($sql);
    60     
    61     $num_results = $result->num_rows;
    62     
    63     $data = array ();
    64     for($i = 0; $i < $num_results$i ++) {
    65         $row = ( array ) $result->fetch_assoc ();
    66         array_push ( $data$row );
    67     }
    68     
    69     $result->free();
    70     return $data;
    71 }
    72 
    73 function executeSql($sql) {
    74     $db = getMysqlConn ();
    75     $result = $db->query ( $sql );
    76     $db->close ();
    77     return $result;
    78 }
    79 
    80 function getMysqlConn() {
    81     $db = new mysqli ( "localhost", "root", "", "galaxia_platform" );
    82     if (mysqli_connect_errno ()) {
    83         echo "Error: connect mysql failed";
    84         exit();
    85     }
    86     return $db;
    87 }
    88 ?>  

    index.php  主文件

      2 <?php 
      3 include 'conn.php';
      4 
      5 $op = "show";
      6 
      7 if (isset($_REQUEST["op"])) {
      8     $op = $_REQUEST["op"];
      9 }
     10 
     11 switch ($op) {
     12     case "show" :
     13         break;
     14     case "add" :
     15         showAddForm();
     16         break;
     17     case "edit" :
     18         showEditForm();
     19         break;
     20     case "save" : 
     21         if (isset($_REQUEST["content"],$_REQUEST["level"])) {
     22             $data["content"] = $_REQUEST["content"];
     23             $data["level"] = $_REQUEST["level"];
     24             add($data);
     25             echo "add success ";
     26         }
     27         break;
     28     case "update" :
     29         if (isset($_REQUEST["id"],$_REQUEST["content"],$_REQUEST["level"])) {
     30             $data["content"] = $_REQUEST["content"];
     31             $data["level"] = $_REQUEST["level"];
     32             $data["id"] = $_REQUEST["id"];
     33             edit($data);
     34             echo "edit success ";
     35         }
     36         break;
     37     case "delete" :
     38         if (isset($_REQUEST["id"])) {
     39             $id = $_REQUEST["id"];
     40             del($id);
     41             echo "delete success ";
     42         }
     43         break;
     44     case "complete" : 
     45         if (isset($_REQUEST["id"])) {
     46             $id = $_REQUEST["id"];
     47             complete($id);
     48             echo "complete task success ";
     49         }
     50         break;
     51 }
     52 showTodoList();
     53 
     54 if ($op == "showHasComplete") {
     55     showHasCompleteTodoList();
     56 }
     57 
     58 ?>
     59 
     60 <?php 
     61 function showTodoList() {
     62 ?>
     63 <caption><h3>Todo list</h3></caption>
     64 <a href="index.php?op=add">add new Todo</a> &nbsp;/&nbsp;<a href="index.php?op=show">show Todo list</a>&nbsp;/&nbsp;<a href="index.php?op=showHasComplete">show all list</a>&nbsp;<br/>
     65 <table border="1">
     66     <thead>
     67         <td>&nbsp;&nbsp;</td>
     68         <td width="500">content</td>
     69         <td>&nbsp;</td>
     70     </thead>
     71     <?php 
     72     $todos = getList();
     73     foreach($todos as $todo) {
     74     ?>
     75     <tr>
     76         <td><input type="checkbox" onclick="javascript:top.location='index.php?op=complete&id=<?php echo $todo['id']?>'"></td>
     77         <td><?php echo $todo['content']?></td>
     78         <td><a href="index.php?op=delete&id=<?php echo $todo['id']?>">delete</a>/<a
     79             href="index.php?op=edit&id=<?php echo $todo['id']?>">edit</a></td>
     80     </tr>
     81     <?php 
     82     }
     83     ?>
     84 </table>
     85 <?php
     86 }
     87 ?>
     88 
     89 <?php 
     90 function showHasCompleteTodoList() {
     91 ?>
     92 <caption><h3>Has completed Todo list</h3></caption>
     93 <table border="1">
     94     <thead>
     95         <td width="500">content</td>
     96         <td>create date</td>
     97         <td>complete date</td>        
     98     </thead>
     99     <?php 
    100     $todos = getHasCompleteList();
    101     foreach($todos as $todo) {
    102     ?>
    103     <tr>
    104         <td><?php echo $todo['content']?></td>
    105         <td><?php echo $todo['op_date']?></td>
    106         <td><?php echo $todo['complete_date']?></td>        
    107     </tr>
    108     <?php 
    109     }
    110     ?>
    111 </table>
    112 <?php
    113 }
    114 ?>
    115 
    116 <?php 
    117 function showAddForm() {
    118 ?>
    119 <form action="index.php?op=save" method="post">
    120     content:<input type="text" name="content">
    121     level:<select name="level">
    122                 <option vlaue="1">1</option>
    123                 <option vlaue="2">2</option>
    124                 <option vlaue="3">3</option>
    125             </select>
    126     <input type="submit" name="submit" value="add to list"> 
    127 </form>
    128 <?php
    129 }
    130 ?>
    131 
    132 <?php 
    133 function showEditForm() {
    134 ?>
    135 <form action="index.php?op=update" method="post">
    136     <?php 
    137     $todo = null;
    138     if (isset($_REQUEST["id"])) {
    139         $id = $_REQUEST["id"];
    140         $todo = getById($id);
    141     } else {
    142         echo "id is empty !";
    143         return;
    144     }    
    145     ?>
    146     <input type="hidden" name="id" value="<?php echo $todo['id']?>">
    147     content:<input type="text" name="content" value="<?php echo $todo['content']?>">
    148         level:<select name="level">
    149                 <option vlaue="1">1</option>
    150                 <option vlaue="2">2</option>
    151                 <option vlaue="3">3</option>
    152             </select>
    153     <input type="submit" name="submit" value="update"> 
    154     <?php 
    155     ?>
    156 </form>
    157 <?php
    158 }
    159 ?>

     SQL创建脚本:

    2    CREATE TABLE IF NOT EXISTS `todo` ( 
    `id` int(11NOT NULL AUTO_INCREMENT,
    3   `content` varchar(500NOT NULL,
    4   `op_date` date NOT NULL,
    5   `status` int(1NOT NULL,
    6   `complete_date` date NOT NULL,
    7   `levelint(1NOT NULL,
    8   PRIMARY KEY (`id`)
    9 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;

     就花了一个多小时做的,只实现了基本功能,连注释也没来得及写,其实也就是CURD功能 :)

  • 相关阅读:
    spring-security使用-权限控制(八)
    Spring源码阅读(六)-ConfigurationClassPostProcessor
    java陷阱之应用缓存
    Spring Batch源码阅读-Job之SimpleJob(五)
    Spring Batch源码阅读-JobLauncher之SimpleJobLauncher(四)
    Spring Batch源码阅读-初始化(三)
    Spring Batch源码阅读-简单使用(二)
    Spring Batch源码阅读-基本概念(一)
    JS函数的定义与调用方法
    百度地图离线化(API v=1.3)
  • 原文地址:https://www.cnblogs.com/yimu/p/2750774.html
Copyright © 2020-2023  润新知