Jump to content

CRUD Help Please


Computech

Recommended Posts

Ok. I am trying to create a customer tracking database that will allow me to get a handle on my customer support inquiries. To do this I have created a database that will store all of a customers pertinent information and then I plan on creating another table that will be 'Notes' where each note is associated with a customerID. I have created the form fine where I can input the data into the table but I am having issues with the next part.

 

I would like to have a list/menu that will display all of the current users in the database. Then when I click on one of those it will display that information in the form so that I can view it, edit it, or delete it. But I have been stumped for multiple days and other php forums have been absolutely worthless.

 

I know that php can pass a variable name in the address but I have no idea how to do that or how to use it when it's in the address. I know I'm a newb. Please help. I really need to move on from this hurdle.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<link href="maxxTraxx.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?php

//Load Database Connectivity and Form Helpers
require 'DB.php';
require 'formhelper.php';

//Connect To Database
$db = MY CONNECTIVITY IS FINE, HIDING FOR SECURITY PURPOSES
if (DB::isError($db)) {
die("Cant connect: " .$db->getMessage());
}

//Print Message and Quit on Future Database Errors
$db->setErrorHandling(PEAR_ERROR_DIE);

customerList();

//Main Page Logic
if ($_POST['_submit_check']) {
foreach($_POST as $key=>$value) {
	if($key == 'saveCustomer') {
		//If validate_form() returns errors, show them the form with errors
		if ($form_errors = validate_formCustomer()) {
			show_form($form_errrors);
		} else { //The submitted data is valid, so process it
			process_formCustomer();
		}
	}
	if($key =='go') {
		print $_POST['customerList'];	
	}
}
}else { //The form wasn't submitted, so display it blank
show_form();
}

//------------FUNCTIONS---------------------------------------------------------
function show_form($errors = '') {
//If the form is submitted, get defaults from submitted parameters
if ($_POST['_submit_check']) {
	$defaults = $_POST;
} else {
	//Otherwise set your own defaults
	$defaults = '';
}

//If errors were passed in, put them in $error_text (with HTML markup)
if ($errors) {
	$error_text = '<tr><td>You need to correct the following errors: ';
	$error_text .= '</td></tr><ul><li>';
	$error_text .= implode('</li><li>',$errors);
	$error_text .= '</li></ul></td></tr>';
} else {
	//No errors? Then $error_text is blank
	$error_text = '';
}

$states = array('AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 'WI', 'WY', 'Canada', 'Puerto Rico', 'Australia');
$status = array(1=>'Fine', 2=>'Received', 3=>'In Repair', 4=>'Waiting', 5=>'Shipped');
$months = array(1=>'January', 2=>'February', 3=>'March', 4=>'April', 5=>'May', 6=>'June', 7=>'July', 8=>'August', 9=>'September', 10=>'October', 11=>'November', 12=>'December');
$days = array();
	for($i = 1; $i <=31; $i++) { $days[$i] = $i; }
$years = array();
	for($year = date('Y') , $max_year = date('Y')+5; $year < $max_year; $year++) { $years[$year] = $year; }

//Jump out of PHP mode to make displaying all the HTML tags easier but still inside the show_form function
?>
    
    <div class="customerForm">
    <center><h2>Customer Form</h2></center>
    <form method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">
    <table>
    <?php print $error_text ?>
    
    <tr><td>Last Name</td>
    <td><?php input_text('customerNameLast', $defaults); ?>, </td>
    <td>First Name</td>
    <td><?php input_text('customerNameFirst', $defaults); ?></td>
    <td>Phone Number</td>
    <td><?php input_text('customerPhone', $defaults); ?></td></tr></table>
    
    <table><tr><td>Address</td>
    <td><?php input_text('customerAddresss', $defaults); ?></td>
    <td>City</td>
    <td><?php input_text('customerCity', $defaults); ?></td>
    <td>State</td>
    <td><?php input_select('customerState', $defaults, $states); ?></td>
    <td>Zip</td>
    <td><?php input_text('customerZip', $defaults); ?></td></tr></table>
    
    <table><tr><td>Email</td>
    <td><?php input_text('customerEmail', $defaults); ?></td>
    <td>RMA #</td>
    <td><?php input_text('customerRMA', $defaults); ?></td>
    <td>Parts Out</td>
    <td><?php input_text('customerPartsOut', $defaults); ?></td></tr></table>
    
    <table><tr><td>Status</td>
    <td><?php input_select('customerStatus', $defaults, $status); ?></td>
    <td>Due Date</td>
    <td><?php input_select('customerDueMonth', $defaults, $months); ?>
    <?php input_select('customerDueDay', $defualts, $days); ?>
    <?php input_select('customerDueYear', $defaults, $years); ?></td></tr></table>
    
    <center><?php input_submit('saveCustomer', 'Save Customer'); ?></center>
    
    <input type="hidden" name="_submit_check" value="1"/>
    </form>
    </div>
    
    <?php
}//End of the show_form() function

function validate_formCustomer() {
$errors = array();

return $errors;
}

function process_formCustomer() {
global $db;

//Get a unique ID for Customer
$customerID = $db->nextID('customerID');
$customerDueDate = $_POST['customerDueYear'].'-'.$_POST['customerDueMonth'].'-'.$_POST['customerDueDay'];

$db->query('INSERT INTO Customer (customerID, customerNameLast, customerNameFirst, customerPhone, customerEmail, customerAddress, customerCity, customerState, customerZip, customerStatus, customerPartsOut, customerRMA, customerDueDate) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)', 
			array($customerID, $_POST['customerNameLast'], $_POST['customerNameFirst'], $_POST['customerPhone'], $_POST['customerEmail'], $_POST['customerAddress'], $_POST['customerCity'], $_POST['customerState'], $_POST['customerZip'], $_POST['customerStatus'], $_POST['customerPartsOut'], $_POST['customerRMA'], $customerDueDate));

//Tell the user that we adde a customer
print '<center>Added '.htmlentities($_POST['customerNameLast']) .' to the database.</center> <br /><br />';
print '<center><a href="/maxxTraxx/index.php">Back To The Admin</a></center>';

}//End of process_formCustomer function
  
  
function customerList() {
global $db;
$qCustomers = $db->query('SELECT customerID, customerNameLast, customerNameFirst FROM Customer');
print '<div class="customerList"><form action="test.php" method="get">';
print '<select name="customerList" size="30">';
while($row = $qCustomers->fetchRow()) {
	$qAllCustomers[0] = $row[0];
	$qAllCustomers[1] = $row[1];
	$qAllCustomers[2] = $row[2];
	//print $row[0];
	//print 'Customer #'.$qAllCustomers[0].' is: '.$qAllCustomers[2].' '.$qAllCustomers[1].'';
	print '<option value="'.$qAllCustomers[0].'" selected>'.$qAllCustomers[1].', '.$qAllCustomers[2].'</option>';
}
print '</select></form></div>';
echo $_POST['customerList'];
input_submit('go', 'go');

//return $qAllCustomers;
}
    

?>
</body>
</html>

 

Link to comment
Share on other sites

Ok, I have succesfully figured out how to fill in the text boxes based on the the .php?id=2 property by checking to see if there was an ID and if there was, changing the defaults to display the query information based on the id number.

 

Now my problem is getting the select menu to pass just the id.

function customerList() {
global $db;
$qCustomers = $db->query('SELECT customerID, customerNameLast, customerNameFirst FROM Customer');
print '<div class="customerList"><form action="testAlt.php" method="get">';
print '<select name="customerList" size="30">';
while($row = $qCustomers->fetchRow()) {
	$qAllCustomers[0] = $row[0];
	$qAllCustomers[1] = $row[1];
	$qAllCustomers[2] = $row[2];
	print '<option value="'.$qAllCustomers[0].'">'.$qAllCustomers[1].', '.$qAllCustomers[2].'</option>';
}
print '</form></div>';
}

 

When I click on a name in the list and hit enter it goes to this address:

http://computechracing.com/maxxTraxx/testAlt.php?customerList=2&customerNameLast=&customerNameFirst=&customerPhone=&customerAddresss=&customerCity=&customerState=0&customerZip=&customerEmail=&customerRMA=&customerPartsOut=&customerStatus=1&customerDueMonth=1&customerDueDay=1&customerDueYear=2011&saveCustomer=Save+Customer&_submit_check=1

 

When I need it to go to this:

http://computechracing.com/maxxTraxx/testAlt.php?customerList=2

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.