零基础学习PHP笔记【三】数据库操作--邮件列表

来源:互联网 发布:同花顺中天软件下载 编辑:程序博客网 时间:2024/06/05 23:42
今天学习进一步的通过网页作为交互界面,来对数据库进行管理

涉及到PHP对数据库的添加,删除,修改。

首先,把连接数据库和查询数据库的方法封装起来。

<?php//function to connect to databasefunction doDB(){    global $mysqli;    //connect to server and select database    $mysqli = mysqli_connect("localhost", "root", "", "info");    if(mysqli_connect_errno()){        printf("Connect failed: &s\n",mysqli_connect_error());        exit();    }}//function to check email addressfunction emailChecker($email){    global $mysqli,$safe_email,$check_res;    //check that email is not already in list    $safe_email = mysqli_real_escape_string($mysqli, $email);    $check_sql = "SELECT id FROM SUBSCRIBERS        WHERE email = '".$safe_email."'        ";    $check_res = mysqli_query($mysqli, $check_sql) or die(mysqli_errno($mysqli));}?>


接着,我们再写一段代码,把以上代码给include进去。

<?php include 'ch19_include.php'; if(!$_POST){     $display_block = <<<END_OF_BLOCK    <form method="post" action="$_SERVER[PHP_SELF]">  <p>    <label for="email">Your Email Address:</label>    <br/>    <input type="email" id="email" name="email" size ="40" maxlength="150" />  </p>  <fiedkset>  <legend>Action:</legend>  <br/>  <input type="radio" id="action_sub" name="action" value="sub" checked="checked"/>  <label for="action_sub">subscribe</label>  <input type="radio" id="action_unsub" name="action" value="unsub" />  <label for="action_sub">unsubscribe</label>  <br />  </fiedlset>  <button type="submit" name="submit" value="submit">Submit</button></form>END_OF_BLOCK; }else if(($_POST)&&($_POST['action']=="sub")){         //trying to subscribe; validate email address         if($_POST['email']==""){             //如果email为空,则点击submit重新加载当前jiem             header("Location:manager.php");             exit;         }else {             //connect to database             doDB();             //check that email is in list             emailChecker($_POST['email']);             if(mysqli_num_rows($check_res)<1){                 //free result                 mysqli_free_result($check_res);                 //add record                 $add_sql = "INSERT INTO subscribers(email)                     VALUES('".$safe_email."')";                 $add_res = mysqli_query($mysqli, $add_sql) or die(mysqli_error($mysqli));                 $display_block = "<p>Thanks for signing up</p>";                 //close connection to MYSQL                 mysqli_close($mysqli);             }else{                 //print failure message                 $display_block = "<p>You are already subscribed!</p>";             }         }     }else if(($_POST)&&($_POST['action']== "unsub")){         if($_POST['email']==""){             header("Location:manager.php");             exit;         }else {             //connect to database             doDB();             //check that email is in list             emailChecker($_POST['email']);                          if(mysqli_num_rows($check_res)<1){                 mysqli_free_result($check_res);                 $display_block = "<p>Could not find your address!No action was taken</p>";             }else{                 while($row = mysqli_fetch_array($check_res)){                     $id = $row['id'];                 }                 $del_sql = "DELETE FROM subscribers WHERE id = ".$id;                 $del_res = mysqli_query($mysqli, $del_sql) or die(mysqli_errno($mysqli));                 $display_block = "<p>You are unsubscribed!</p>";             }             mysqli_close($mysqli);         }     }?><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Subscribe/Unsubscribe to Mailing List</title></head><body>  <h1>Subscribe/Unsubscribe to a Mailing List</h1>  <?php echo "$display_block"?></body></html>

原理非常简单,逻辑清晰,HTML界面有两个选择按钮,根据选择按钮对邮件进行注册和反注册(就是进行数据库的添加和删除操作),以判断查询的结果的行数是否大于1来确定是否有结果。再对结果进行删除或者添加。


0 0