Add,Edit,Update,All,in,one,Contact,Management,Form,php

Mert 9/1/2016 0

Add, Edit & Update All in one Contact Management Form Here is a fun example on how to use functions to squeeze the most out of one page. This page lists users, adds users and edits users.

PHP
 <? 
/* 
  CREATE TABLE `kids` ( 
  `id` int(10) NOT NULL auto_increment, 
  `first_name` varchar(30) NOT NULL default '', 
  `last_name` varchar(50) NOT NULL default '', 
  `email` varchar(75) default NULL, 
  `contact_status` tinyint(1) NOT NULL default '0', 
  PRIMARY KEY  (`id`) 
) TYPE=MyISAM  ; 

*/ 
?> 


<html> 
<head> 
<title>Manage contact's data</title> 
</head> 
<body> 
<?php 
/* control code for application */ 

//submit button was pressed so call the process form function 
if (isset($_POST['submit'])) 
{ 
  process_form(); 
  die(); 
}//end if 


//call the get_data function 
if (isset($_GET['id'])) 
{ 
  get_data(); 
}//endif 


//nothing chosen so list the kids 
if ((empty($_POST))&&(empty($_GET))) 
{ 
  list_users(); 
  die(); 
}//end if 


//request to add a new contact so call the show_form function 
if ((isset($_GET['action']))&&($_GET['action']=='add')) 
{ 
  show_form(); 
}//endif 



/* get the data for an individual contact */ 

function get_data() 
{ 
    //validate the id has been passed at that it is a number 
    if ((empty($_GET['id']))||(is_nan($_GET['id']))) 
    { 
        //there was a problem so list the users again 
      list_users(); 
      //kill the script 
      die(); 
    }else{ 
      //all is ok and assign the data to a local variable 
      $id = $_GET['id']; 
    }//end if 
    $sql = "select * from contacts where id = $id"; 
    $result = conn($sql); 
    if (mysql_num_rows($result)==1){ 
      //call the form and pass it the handle to the resultset 
      show_form($result); 
    }else{ 
      $msg = "No data found for selected contact"; 
      confirm($msg); 
      //call the list users function 
      list_users(); 
    }//end if   
}//end function 


/* show the input / edit form*/ 
function show_form($handle='',$data='') 
{ 
  //$handle is the link to the resultset, the ='' means that the handle can be empty / null so if nothing is picked it won't blow up 
   
  //set default values 
  $first_name = ''; 
  $last_name  = ''; 
  $email      = ''; 
  $status     = ''; 
  $id         = ''; 
  $value      = 'Add';  //submit button value 
  $action     = 'add';  //default form action is to add a new kid to db 

  //set the action based on what the user wants to do 
  if ($handle) 
  { 
    //set form values for button and action 
    $action = "edit"; 
    $value  = "Update"; 
     
    //get the values from the db resultset 
    $row = mysql_fetch_array($handle); 
    $first_name = $row['first_name']; 
    $last_name  = $row['last_name']; 
    $email      = $row['email']; 
    $status     = $row['contact_status']; 
    $id         = $row['id']; 
   
  }//end if 
   
  //error handling from the processing form function 
  if($data != '') 
  { 
    $elements = explode("|",$data); 
        $first_name     = $elements[0]; 
        $last_name      = $elements[1]; 
        $email          = $elements[2]; 
        $id             = $elements[3]; 
  } 
?> 
    <body> 
    <form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?action=<?php echo $action?>"> 
    <table width="400" align="center" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
          <td colspan="2" align="center" style="font-size:18px; font-weight:bold;">Manage Contact's Data Form</td> 
          <input type="hidden" value="<?php echo $id?>" name="id"> 
      </tr> 
      <tr> 
        <td> </td> 
        <td> </td> 
      </tr> 
      <tr> 
        <td align="right">First Name: </td> 
        <td><input name="first_name" type="text" value="<?php echo $first_name?>"> </td> 
      </tr> 
      <tr> 
       <td align="right">Last Name: </td> 
       <td><input name="last_name" type="text" value="<?php echo $last_name?>"> </td> 
      </tr> 
      <tr> 
        <td align="right">Email Address: </td> 
        <td><input name="email" type="text" value="<?php echo $email?>"> </td> 
      </tr> 
      <tr> 
        <td align="right">Stop Contact? </td> 
        <td><input name="status" type="checkbox" value="1" <?php if ($status==1){ echo " checked=CHECKED "; } ?>> </td> 
      </tr> 
      <tr> 
        <td> </td> 
        <td> </td> 
      </tr> 
      <tr> 
        <td colspan="2" align="center"><input name="submit" type="submit" value="<?php echo $value?>"> <input name="reset" type="reset" value="Clear Form"></td> 
      </tr> 
    </table> 
     
    </form> 
    </body> 

<? 
}//end function 


/* list all the contacts in the db */ 
function list_users() 
{ 
    $y = 0; //counter 
     
    $sql = "select * from contacts ";  //may want to add the option where clause to only take kids with an active status 
    $result = conn($sql); 
   
  echo "<table width='400' align='center' cellpadding='0' cellspacing='0'> 
        <tr><td colspan='2' align='center' style='font-size:18px; font-weight:bold;'>Manage Contacts Data Form</td></tr> 
        <tr><td colspan='2'> </td></tr> 
        <tr><td colspan='2'><a href='".$_SERVER['PHP_SELF']."?action=add'>Add a new contact</a></td></tr> 
        <tr><td colspan='2'> </td></tr>"; 
         
     if (mysql_num_rows($result)){ 
      //show a list of kids with name as a link to the prepopulated form with their data in it 
      while($rows = mysql_fetch_array($result)){ 
         
        //change row background color 
        (($y % 2) == 0) ? $bgcolor = "#8FBC8F" : $bgcolor=" #9ACD32"; 
         
        //build strings to make life easier 
        $name   = $rows['first_name'].' '.$rows['last_name']; 
        $status = $rows['contact_status']; 
        $id     = $rows['id']; 
         
        //convert status to readable string from 1 or 0 
        ($status == 0) ? $status = "Available to contact" : $status = "Do not contact at present."; 
         
        //echo out the row 
        echo "<tr style='background-color:$bgcolor;'><td><a href='".$_SERVER['PHP_SELF']."?id=$id'>$name</a></td><td>$status</td><tr>"; 
        $y  ;  //increment the counter 
      }//end while 
      echo "</table>"; 
  }else{ 
    //handle no results 
    echo "<tr><td colspan='2' align='center'><b>No data found.</b></td></tr>"; 
  }//endif 
} 


/* add / update the contact's data*/ 
function process_form() 
{ 
  $fname  = ''; 
  $lname  = ''; 
  $email  = ''; 
  $id     = ''; 
  $action = ''; 
  $status = 0;    //default value 

  $fname  = @$_POST['first_name']; 
  $lname  = @$_POST['last_name'];   
  $email  = @$_POST['email'];       
  $id     = @$_POST['id'];          
  $action = @$_GET['action']; 
  $status = @$_POST['status']; 
   
  //if no status is set, defaults to 0 (allow contact) 
  if ($status == ''){$status = 0; } 
    
  if (($fname=='')||($lname=='')||($email=='')) 
  { 
    $msg = "Some data from the form was forgotten. Please fill in the entire form."; 
    confirm($msg); 
    $data = "$fname|$lname|$email|$id"; 
    show_form('',$data); 
    die(); 
  }//end if 
   
  //You could add some validation of the data ( I recommend it and its a great way to get your feet wet with php ) 


  if ($action == "add") 
  { 
    $sql = "insert into contacts (first_name, last_name, email, contact_status) values('$fname','$lname','$email',$status)"; 
    $msg = "Record successfully added"; 
  }elseif($action=="edit"){ 
    $sql = "update contacts set first_name = '$fname', last_name = '$lname', email = '$fname', contact_status = '$status' where id = $id"; 
    $msg = "Record successfully updated"; 
  } 
  $result = conn($sql); 
  if (mysql_errno()==0) 
  { 
    confirm($msg); 
    list_users(); 
  }else{ 
    $msg = "There was a problem adding the user to the database. Error is:".mysql_error(); 
    confirm($mag); 
  }//end if 
       
} 


/* db connection function */ 
function conn($sql) 
{     

$host = "localhost"; 
$user = "user"; 
$pass = "pass"; 
$db     = "my_db"; 


    //echo "commnecing connection to local db<br>"; 
     
    if (!($conn=mysql_connect($host, $user, $pass)))  { 
        printf("error connecting to DB by user = $user and pwd=$pass"); 
        exit; 
    } 
    $db3=mysql_select_db($db,$conn) or die("Unable to connect to local database"); 

    $result = mysql_query($sql) or die ("Can't run query because ". mysql_error()); 
     
    return $result; 
     
}//end function      

/* alert box popup confimation message function */ 
function confirm($msg) 
{ 
  echo "<script langauge=\"javascript\">alert(\"".$msg."\");</script>"; 
}//end function 

?>
  

Report Bug

Please Login to Report Bug

Reported Bugs

Comments

Please Login to Comment

Comments